繁体   English   中英

htaccess重定向到同一域上的特定url(无循环)

[英]htaccess redirect to a specific url on same domain (without looping)

我真的希望您能帮助我(这使我发疯)。 我尝试了数十种设置,但似乎没有任何效果,Google晕眩了我,并尝试了许多不同的设置,但这一切似乎都导致循环或服务器错误。

这是需要发生的事情:

我有一个附加了多个域的网站。 我需要的是,当有人通过“ domain.co.uk”域访问该网站时,将重定向到正确的语言参数(以及其他参数)。

具体而言:通过“ www.domain.co.uk”访问时,访问者必须重定向到“ www.domain.co.uk?lang=en&noredir=1&currency=3”

我确保www带有以下内容:

RewriteCond %{HTTP_HOST} !^www.domain.co.uk$ [NC]
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [L,R=301]

问题是(我认为)同一域内的重定向而不引起循环。

我已经尝试过类似的事情,但是没有结果:

RewriteCond %{HTTP_HOST} ^www.domain.co.uk$
RewriteRule ^$ http://www.domain.co.uk/?lang=en&noredir=1&currency=3 [L,R=301]

希望您能提供帮助,

干杯!

这将导致循环:

RewriteCond %{HTTP_HOST} ^www.domain.co.uk$
RewriteRule ^$ http://www.domain.co.uk/?lang=en&noredir=1&currency=3 [L,R=301]

因为您只检查主机头。 每次触发重定向时,它将以www.domain.co.uk的主机标头返回服务器,然后再次重定向。 您还需要检查查询字符串,仅在它与您发送的内容不匹配时才进行重定向:

RewriteCond %{HTTP_HOST} ^www.domain.co.uk$
RewrteCond %{QUERY_STRING} !lang=en&noredir=1&currency=3
RewriteRule ^$ http://www.domain.co.uk/?lang=en&noredir=1&currency=3 [L,R=301]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM