2011-05-13 106 views
2

我創建一個自定義的.htaccess文件重定向,我到一個奇怪的問題問題與的.htaccess重定向錯誤

這裏跑在我的.htaccess文件規則

RewriteCond %{HTTP_HOST} !^www\.site\.com$ 
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ http://www.site.com/$1/ [R=301,L] 
RewriteRule ^postreview/ /viewreview.php [NC,PT]  
RewriteRule ^([^/\.]*)/?([^/\.]*)/?([^/\.]*)/?$ /template2.php?slash1=$1&slash2=$2&slash3=$3 [L] 

綜上所述我想實現: 1.強制WWW 2.有翻譯成變量tempalte2.php 3.發送postreview到viewreview.php 3個斜線區域

大多數的什麼,我試圖做的是工作,但我h一個奇怪的錯誤。

當我輸入「site.com/slash1」它重定向到「www.site.com/site.com/slash1/」 但是如果我輸入「site.com/slash1」它將重定向到www.site。 com/slash1/

由於某些原因,它還在所有內容的末尾添加了「/」。不知道爲什麼..

任何想法?

回答

0

出於某種原因,它還在所有內容的末尾添加了「/」。不知道爲什麼..

這是由於這一規則

RewriteRule (.*)$ http://www.site.com/$1/ [R=301,L] 

將其更改爲

RewriteRule (.*)$ http://www.site.com/$1 [R=301,L] 
+0

當我將其更改爲'重寫規則的$ HTTP(*):// WWW。 site.com/$1 [R = 301,L]'我得到一個:錯誤310(net :: ERR_TOO_MANY_REDIRECTS):有太多的重定向。 – 2011-05-13 23:28:36

+0

@Jason Small:將它從'[R = 301,L]'改爲'[L]',或者完全刪除它,因爲你已經在你的'.htaccess'的第二行做了同樣的重定向[ – stealthyninja 2011-05-13 23:56:21

+0

真棒修復了斜槓的添加。關於如何阻止這種情況發生的任何想法:當我輸入「site.com/slash1」時,它將重定向到「www.site.com/site.com/slash1/」注意:我想保留www的強制 – 2011-05-14 00:28:04