所以這是我第一次做mod_rewrite,我使用的是教程和生成器,到目前爲止它一切都好,除了最後一行之外,如果我沒有犯任何錯誤重定向about.php到/ 有人知道爲什麼它不?簡單的mod_rewrite規則不起作用[L]
其他所有的規則都沒有工作的問題(我沒有仔細檢查網頁的存在,我試圖添加一個斜槓前about.php因爲我的網站是與多個網站的服務器上...)
Options +FollowSymLinks
#Sub-dir e.g: /cmsms
RewriteBase/
#redirect www.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.metareviewr.com
RewriteRule (.*) http://metareviewr.com/$1 [R=301,L]
#RewriteRule ^show/([^/]*)/$ /tvshow.php?id=$1 [L]
RewriteRule ^show/([^/]*)/([^/]*)/$ /tvshow.php?id=$1&?name=$2 [L]
# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\ HTTP/
RewriteRule ^(([^/]+/)*)index\.php$ http://metareviewr.com/$1 [R=301,L]
RewriteRule ^about/$ about.php [L]
因爲它正好相反,不重定向。它重寫(內部).../about /到about.php文件,那裏沒有外部重定向。 – Wrikken
它做什麼的相反?它應該做什麼? – Callombert
重寫規則標誌[L]表示在滿足任何條件時停止。這是對所有這些標誌的引用。 http://httpd.apache.org/docs/2.2/rewrite/flags.html 您可能需要移動上面的重寫規則: '#從ExpressionEngine URL中刪除index.php RewriteCond%{THE_REQUEST}^[AZ ] {3,9} \ /([^ /] + /)* index \ .php \ HTTP/ RewriteRule ^(([^ /] + /)*)index \ .php $ http://metareviewr.com/$ 1 [R = 301,L]' –