在我的.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']
(例如从这个网址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]
得到同样的东西!
出了什么问题。
答案 0 :(得分:0)
你有一些错误的顺序,但你可能会被缓存。浏览器将缓存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]