2017-07-02 172 views
0

我如何可以重定向用GET参数的URL到正规网址:的.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 

但我没有工作

+0

您当然可以将这样的请求重定向到该目标URL,但是您肯定会失去那些获取第一个URL中存在的参数。我怀疑这是你想要的... – arkascha

+0

不,我不需要这个得到论据 – christophefongemie

回答

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样式文件)。这些文件出了名的错误,很难调试,他们真的放慢了服务器。它们仅提供作为的情况下最后的选择,你没有对主机配置控制(读:真的很便宜的托管服务提供商),或者如果你有依赖于写自己的重写规则(这是一个明显的安全恶梦的应用)。

+0

这就是我需要的!谢谢你的提示。 – christophefongemie

+0

欢迎您! ;-) – arkascha