繁体   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