如何将带有get参数的url重定向到常规网址:
这
/index.php?cid=100&id=550&Itemid=1084
到
/my-page
我试过了:
Redirect 301 /index.php?cid=100&id=550&Itemid=1084 /my-page
但我没有工作
答案 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
样式文件)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。