.htaccess 重写多个301重定向的规则

.htaccess 重写多个301重定向的规则,.htaccess,redirect,.htaccess,Redirect,我试着查找我的问题,但我找到的最接近的答案不起作用——特别是因为我对编辑.htaccess文件非常陌生 我有一个网站,已被编程为动态生成一个页面的副本,以适应一个位置。例如,example.com/help/work/被设置为制作大约100个类似这样的副本:example.com/help/work/?city=Washington&state=DC,每个页面上的城市和州都在动态变化。这些变化有很多,我想用city和state参数301重定向所有页面,使它们指向原始页面(example.com/

我试着查找我的问题,但我找到的最接近的答案不起作用——特别是因为我对编辑
.htaccess
文件非常陌生

我有一个网站,已被编程为动态生成一个页面的副本,以适应一个位置。例如,
example.com/help/work/
被设置为制作大约100个类似这样的副本:
example.com/help/work/?city=Washington&state=DC
,每个页面上的城市和州都在动态变化。这些变化有很多,我想用city和state参数301重定向所有页面,使它们指向原始页面(
example.com/help/work/

经过一些研究,我找到了一条规则,可以帮助我逐页完成这项工作,但仅限于主页:

RewriteCond %{QUERY_STRING} ^city=Philadelphia&state=PA$
RewriteRule ^$ http://example.com/? [R=301,L]
综上所述,我有一个由两部分组成的问题:

  • 有没有一种方法可以将其写入子目录页面?(我只能让它做索引)
  • 是否有一种方法可以在单个重写规则中使用通配符,如(.*),以便
    example.com/help/work/?city=Washington&state=DC
    及其所有城市/州变体指向原始页面(
    example.com/help/work/

  • 是的,您可以在重写规则中使用正则表达式捕获组动态捕获请求uri

    像这样

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

    是的,您可以在重写规则中使用正则表达式捕获组动态捕获请求uri

    像这样

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

    我对你的要求有点困惑。似乎您希望将每个城市和州都指向这一页<代码>http://example.com/help/work/看看这是否是您想要的

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

    我对你的要求有点困惑。似乎您希望将每个城市和州都指向这一页<代码>http://example.com/help/work/看看这是否是您想要的

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

    非常感谢。为了澄清一点,这里有一个更好的例子来说明我正在尝试做什么:现在我有example.com、example.com/idea/good/和example.com/help/work这样的页面。这些是我希望每个人都能看到的原始规范页面。还生成了复制这些页面并添加“城市/州”参数的页面。所以我列出的每个url示例都有大约100个动态创建的url变体。我试图让所有的城市/州页面重定向到各自的规范页面。这有意义吗?这是我一直在尝试的另一个方法,只是想提供更多的见解。我走对了吗?RewriteCond%{QUERY_STRING}^city=.*&state=.*$RewriteRule^help/work/$[R=301,L]好的,我更新了我的答案,我认为你试图澄清什么。请看看这对你是否有效。很抱歉我没有及时回复——东海岸暴风雪!但是我想说非常感谢你的帮助!好的没问题。请点击复选框接受答案谢谢!为了澄清一点,这里有一个更好的例子来说明我正在尝试做什么:现在我有example.com、example.com/idea/good/和example.com/help/work这样的页面。这些是我希望每个人都能看到的原始规范页面。还生成了复制这些页面并添加“城市/州”参数的页面。所以我列出的每个url示例都有大约100个动态创建的url变体。我试图让所有的城市/州页面重定向到各自的规范页面。这有意义吗?这是我一直在尝试的另一个方法,只是想提供更多的见解。我走对了吗?RewriteCond%{QUERY_STRING}^city=.*&state=.*$RewriteRule^help/work/$[R=301,L]好的,我更新了我的答案,我认为你试图澄清什么。请看看这对你是否有效。很抱歉我没有及时回复——东海岸暴风雪!但是我想说非常感谢你的帮助!好的没问题。请单击复选框接受答案