[英]Strange redirection with htaccess mod_rewrite
在我的.htaccess文件中,有以下幾行:
RewriteEngine On
RewriteCond %{http_host} ^test.ru [nc]
RewriteRule ^(.*)$ http://www.test.ru/$1 [r=301,nc]
RewriteBase /
RewriteRule ^(.*)/$ index.php?string=$1 [NC,L]
所以我想將test.ru更改為www.test.ru
並將www.test.ru/my_string_value/賦予$ _GET ['string']
(例如,從此URL www.test.ru/ru/pages/id/),展開此ru / pages / 888,獲取我的參數(lang = ru,cat = pages,id = 888)。
當我嘗試檢查www的添加部分(編寫test.ru必須使www.test.ru)得到此信息時:
http://www.test.ru/index.php?string=http://www.test.ru
使用參數獲取就可以了!
還有一件有趣的事! 塗裝線后
#RewriteEngine On
#RewriteCond %{http_host} ^test.ru [nc]
#RewriteRule ^(.*)$ http://www.test.ru/$1 [r=301,nc]
#RewriteBase /
#RewriteRule ^(.*)/$ index.php?string=$1 [NC,L]
得到同樣的東西!
怎么了。
您的某些東西順序錯誤,但可能已被緩存。 瀏覽器將緩存301重定向。 清除瀏覽器緩存或嘗試使用其他瀏覽器。 在測試時也請使用302。 一切正常后,請更改為301。 並且您還應該在重定向上使用L
標志。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^test\.ru [NC]
RewriteRule ^(.*)$ http://www.test.ru/$1 [R=302,NC,L]
RewriteRule ^(.*)/?$ index.php?string=$1 [NC,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.