代码之家  ›  专栏  ›  技术社区  ›  Tisch

301重定向,以及正确的正则表达式

  •  1
  • Tisch  · 技术社区  · 15 年前

    我有几个网址,我想重定向到同一个地方,但这些是动态网址。

    结构如下:

    http://www.mysite.com/declaration/list?[query_string]
    

    对于这种情况,我认为最理想的方法是在.htaccess文件中使用一些regex将所有这些链接重定向到站点主页。

    RewriteCond %{QUERY_STRING} ^(.*)$
    RewriteRule ^/declaration/list$ http://www.mysite.com/$ [R=301,L]
    

    我的正则表达式是薄弱的,至少可以说,一些我想,并试图学习。

    汤姆

    1 回复  |  直到 15 年前
        1
  •  3
  •   Gumbo    15 年前

    由于您在.htaccess文件中使用mod\u rewrite,因此需要从模式中删除上下文路径前缀。所以试试这个:

    RewriteCond %{QUERY_STRING} ^(.*)$
    RewriteRule ^declaration/list$ http://www.example.com/ [R=301,L]
    

    从那以后呢 .* 将匹配 RewriteCond 指令没有其他用途:

    RewriteRule ^declaration/list$ http://www.example.com/ [R=301,L]
    

    如果不希望查询自动附加到新URL,请在替换中指定一个空查询:

    RewriteRule ^declaration/list$ http://www.example.com/? [R=301,L]