.htaccess 存在特殊参数时,htaccess使用参数重定向URL

unhi4e5o  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(142)

我希望得到以下任务的帮助:
我只想在调用index.php并给定一个特殊参数时重定向一个包含.htaccess的域。
https://www.my-domain.com/index.php?action=status-check&licence=80586f63&product=RFDE&domain=domain.tld
调用此URL且参数action存在时,应将其重定向到
https://www.other-domain.com/index.php?action=status-check&licence=80586f63&product=RFDE&domain=domain.tld
如果只是
https://www.my-domain.com/index.php?parm=4711

https://www.my-domain.com/index.php
或此域中具有但不带参数action的任何其他URL,则不会发生任何情况。
有人能帮我找到正确的条件和规则吗?!

wz8daaqr

wz8daaqr1#

您可以在根.htaccess文件的顶部执行以下操作:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)my-domain\.com
RewriteCond %{QUERY_STRING} (^|&)action=
RewriteRule ^index\.php$ https://www.other-domain.com/$0 [R=302,L]

action URL参数存在于查询字符串中的任何位置时(尽管您的示例仅在查询字符串的 start 处显示此参数?),此选项将重定向www.my-domain.com/index.php(包含或不包含www子域)。URL路径和查询字符串都将在重定向到www.other-domain.com时保留。action URL参数可以具有任何值。
$0反向引用包含RewriteRule * 模式 * 的整个匹配项,即index.php成功。默认情况下,原始查询字符串将被传递-您无需在此处执行任何额外操作即可重定向到 * 相同 * 查询字符串。
如果www.other-domain.com位于另一台服务器上,并且在源主机上没有其他域发生冲突,那么您可能可以删除检查HTTP_HOST服务器变量的第一个条件。

相关问题