2013-06-05 41 views
0

所以這是我第一次做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] 
+0

因爲它正好相反,不重定向。它重寫(內部).../about /到about.php文件,那裏沒有外部重定向。 – Wrikken

+0

它做什麼的相反?它應該做什麼? – Callombert

+0

重寫規則標誌[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]' –

回答

0

這應該工作

RewriteRule ^about.php$ about/ [L,R=301] 
+0

http://metareviewr.com/about/給我找不到一個(請求的URL/meta/about /在這臺服務器上找不到),儘管它在那裏。 – Callombert

+0

是你目錄根目錄下的.htaccess文件嗎?根目錄中的頁面也是? – Vector

+0

網站的根目錄,是的。相同的頁面。 – Callombert