如果查询字符串中的值匹配,我尝试将一个URL重定向到另一个URL,如果是特定值(do = login)。我想保留整个字符串,因为它转发到另一个域名/网址。
例如:
如果访问者点击https://domain1.com/myscript/script1.php?do=login&why=because,则规则将匹配(找到= =登录)并将网址重写为https://domain2.com/script1.php?do=login&why=because
如果访问者点击https://domain1.com/myscript/script1.php?why=because,则规则将不匹配(do =登录未找到),并且不会重写该URL。它将保持https://domain1.com/myscript/script1.php?why=because
这是我到目前为止所做的,但它似乎没有起作用:
RewriteEngine On
RewriteCond %{HTTP_HOST} =domain1.com [NC]
RewriteCond %{QUERY_STRING} (do=login)
RewriteRule ^$ https://domain2.com/script1.php/?%{QUERY_STRING} [R=301,L]
我对重写规则没有太多经验,并且一直试图让它工作几个小时。非常感谢您提供的任何帮助!
答案 0 :(得分:0)
这不起作用,因为您当前的RewriteRule
仅匹配根页/
。您需要匹配myscript/script1.php
RewriteEngine On
RewriteCond %{HTTP_HOST} domain1\.com$ [NC]
RewriteCond %{QUERY_STRING} do=login [NC]
RewriteRule ^myscript/script1\.php$ https://domain2.com/script1.php?%{QUERY_STRING} [R=301,L]