2011-07-26 6 views
0

クリーンURLを管理するのに.htaccessを使用していますが、何らかの理由で404 Not Found Apacheエラーが発生することがあります。クリーンURLに.htaccessを使用すると小さなエラーが発生する

ユーザーがhttp://domain.com/profile/に行くと、すべて問題ありません。

ユーザーがhttp://domain.com/profileに行く場合、それらはエラーになります

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)/([^/]*)$ /index.php?page=$1&cmd=$2 [L] 

答えて

0

これを試してみてください:

<IfModule mod_rewrite.c> 
Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/

# /profile/cmd 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)$ /index.php?page=$1&cmd=$2 [L] 

# /profile 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)$ /index.php?page=$1 [L] 

</IfModule> 
0

あなたは301を使用して最後のスラッシュたURLとURLをリダイレクトすることができますリダイレクト

書き換え条件とともに以下を試してください。これにより、すべてのURL要求が後続のスラッシュでurlにリダイレクトされます。例。 http://domain.com/profileはあなたが書いた書き換えルールは1つのスラッシュ「/」が必要ですhttp://domain.com/profile/

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !example.php 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301] 
0

にリダイレクトされます。 代わりに試してみてください:

RewriteRule ^([^/]*)(/([^/]*))?$ /index.php?page=$1&cmd=$3 [L] 
関連する問題