2012-08-30 29 views
2

我想用.htaccess中的這段代碼製作漂亮的URL(contact.php?id =要聯繫/某事),但是當我使用它時,我的瀏覽器顯示310錯誤 - 太多重定向。Mod_Rewrite Error 310 TOO_MANY_REDIRECTS

Options +FollowSymlinks 

RewriteEngine On 
RewriteBase/

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

RewriteCond %{QUERY_STRING} ^id=(.*)$ 
RewriteRule ^contact.php$ /contact/%1? [R,L] 

有人可以幫助我,怎麼了? 謝謝。

回答

3

您的問題是,要重定向聯繫人/到contact.php然後重定向contact.php聯繫(見死循環?)

爲了解決這個問題,你可以添加另一沒用參數的第一條規則(另一件事是,你應該在最後一條規則,而不是僅僅R標誌使用R = 301,這意味着重定向是您永久而不是臨時的,但是這不會導致任何問題):

Options +FollowSymlinks 

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^contact/(.*)$ contact.php?id=$1&r=0 [L] 

RewriteCond %{QUERY_STRING} ^id=([^\&]*)$ 
RewriteRule ^contact.php$ /contact/%1? [R=301,L] 
+0

不錯,現在它的工作原理大。非常感謝您的解釋。 –

+0

歡迎您:)很高興它爲您工作^^ – Oussama

相關問題