重写多个301重定向

时间:2016-01-21 17:54:30

标签: .htaccess redirect

我已经尝试过查看我的问题了,但我找到的最接近的答案无效 - 特别是因为我对编辑.htaccess文件非常陌生。

我有一个网站已被编程为动态生成页面的副本以适合某个位置。例如,example.com/help/work/设置为大约100个重复项,如下所示:example.com/help/work/?city=Washington&state=DC城市和州的每个页面动态变化。这些变化有很多,我想301重定向所有具有城市和州参数的页面,以便它们指向原始页面(example.com/help/work/)。

经过一些研究,我找到了一个RewriteRule帮助我逐页进行,但仅限于主页:

RewriteCond %{QUERY_STRING} ^city=Philadelphia&state=PA$
RewriteRule ^$ http://example.com/? [R=301,L]

尽管如此,我还有两个问题:

  1. 有没有办法写这个,以便它针对子目录页面? (我只能得到它来做索引)
  2. 有没有办法可以在单个RewriteRule中使用像(。*)这样的通配符,example.com/help/work/?city=Washington&state=DC所有城市/州的变体都指向原始页面example.com/help/work/)?

2 个答案:

答案 0 :(得分:0)

是的,您可以在重写规则中使用正则表达式捕获组,以动态方式捕获request_uri。

喜欢这个

BroadcastReceiver

答案 1 :(得分:0)

我对您的请求感到有些困惑。您似乎想要将每个城市和州都指向此单页。 http://example.com/help/work/看看这是否是您正在寻找的。

RewriteCond %{QUERY_STRING} city=.+&state=.+
RewriteRule ^([^/]+)/([^/]+)/?$ http://example.com/$1/$2/? [R=301,L]