簡體   English   中英

使用htaccess mod_rewrite進行奇怪的重定向

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM