2013-08-19 25 views
0

這是我.htaccess文件:從URL中移除.PHP?

RewriteEngine On 
RewriteRule ^(.*)/$ /$1 [L,R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [NC,L] 

當用戶進入http://local/home,它工作正常,但如果用戶去http://local/home.php,在.php撐在那裏,它不重定向到頁面沒有.php,所以不要將其標記爲重複,因爲我已經研究過它。

回答

1

您沒有任何規則將請求重定向到php擴展,以便在沒有它的情況下重定向。這就是它留在那裏的原因。僅僅因爲你在內部重寫了一條規則,一個缺少php擴展的請求並不意味着它奇蹟般地發生在另一個方向。在你的規則上,你需要來匹配實際的請求並重定向瀏覽器時,它要求一個PHP文件:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /(.+)\.php(\?|\) 
RewriteRule^/%2 [L,R=301] 

更多:

只是承認ar ule只做它要求做的一件事,匹配URI的模式,並重寫/重定向到目標。

+0

太棒了,正如我預料的那樣工作。 – VladHQ