[英].htaccess redirect with GET parameters and URL condition
我尝试根据2个条件重定向到另一个域并更改URL结构(不保留URI部分):
原始网址具有“ lang”参数。
原始URI以“页面”开头。
是Apache 2.2
当原始URL中仅具有lang paramenter时,此方法有效:
RewriteCond %{QUERY_STRING} lang=en$
RewriteRule ^.*$ https://www.destination.com/en/? [R=301,L]
例如,它将ok重定向为:
http://www.origin.com/?lang=en
至:
http://www.destination.com/en/
但我还需要重定向以下内容:
http://www.origin.com/page/5/?lang=en
至:
http://www.destination.com/en/
我正在尝试类似的操作,但不起作用,我认为RewriteRule
模式中存在错误:
RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^/page/.*/?$ https://www.destination.com/en/? [R=301,L]
欢迎!
您可能不想拥有一个?
在RewriteRule的末尾。 但是,如果您愿意,可以这样做。 也许您想拥有一个类似于以下内容的RewriteRule:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} lang=en$
RewriteRule (.*)(\?lang=en) https://www.destination.com/en/ [R=301,L]
</IfModule>
您可能要使用类似以下的命令来重新启动apache:
sudo apachectl restart
每次对.htaccess
文件进行更改时,您可能都会清除浏览器缓存
该图显示了表达式的工作原理,如果您想知道:
该工具可以帮助您简单地设计自己想要的任何规则。
我假设您要将所有包含ULR的?lang=en
重定向到单个URL。 我不确定。 如果不是这种情况,则您可能无法使用我的表达方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.