Htaccess:使用get参数重定向url

时间:2017-07-02 11:59:07

标签: .htaccess

如何将带有get参数的url重定向到常规网址:

/index.php?cid=100&id=550&Itemid=1084   

/my-page

我试过了:

Redirect 301  /index.php?cid=100&id=550&Itemid=1084 /my-page

但我没有工作

1 个答案:

答案 0 :(得分:0)

如果您在上面的评论中声明,需要目标请求中的查询参数,您可以执行简单的重定向:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^cid=100&id=550&Itemid=1084$
RewriteRule ^/?index.php$ /my-page [R=301]

该规则适用于http服务器主机配置,同样适用于动态配置文件(.htaccess样式文件)。

如果您希望匹配模式更灵活一些,那么接受任意数字,而不仅仅是您在问题中指定的数字,那么您可以使用略微修改的条件:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^cid=\d+&id=\d+&Itemid=\d+$
RewriteRule ^/?index.php$ /my-page [R=301]

一般提示:您应该始终更喜欢将此类规则放在http服务器(虚拟)主机配置中,而不是使用动态配置文件(.htaccess样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。