【问题标题】:Is there a 301 wildcard match?有 301 通配符匹配吗?
【发布时间】:2015-05-13 15:28:51
【问题描述】:

在完成网站重新设计后,我很难处理似乎需要的所有 301 重定向。整个子目录及其广泛的内容不再存在。例如,如果“myolddata”是一个不再存在的文件夹,并且充满了无数的文件,每个文件也不再存在,我想说“忘记所有这些,直接进入索引页面”。似乎没有其他方法可以关闭 Google 和 Bing 无休止地向我报告大量 404 问题。有没有一种有效的说法:

Redirect 301 /myolddata/  /index.html
Redirect 301 /myolddata/* /index.html

第一个说“忘记文件夹”,第二个说“忘记其中的所有内容”?

这个问题的第二部分是旧的 PHP 文件及其任意搜索参数也被记录下来。像这样的东西:

oldfile.php?this=1&that=2&somethingelse=3
oldfile.php?this=Tom&that=Dick&somethingelse=Harry

你明白了。数以百万计。我怎样才能设置一个 301 说“忘记 oldfile.php 和任何可以想象的参数 - 它们都消失了!”

您的帮助、cmets 和建议将非常有价值,因此欢迎所有见解!

【问题讨论】:

    标签: .htaccess redirect http-status-code-404 http-status-code-301


    【解决方案1】:

    使用301 状态码更好地使用mod_rewrite 规则。在您的 DOCUMENT_ROOT/.htaccess 文件中使用此代码:

    RewriteEngine On
    
    RewriteRule ^(oldfile\.php$|myolddata(/|$)) /index.html? [L,NC,R=301]
    

    ? 最后将删除任何现有的查询字符串。

    【讨论】:

    • 嗨。 @anubhava 我可以请您再向我描述一下吗?我认为第一部分(RewriteRule ^(oldfile\.php$) 是指具有任意参数的文件,但第二部分( |myolddata(/|$)) )是指一个名为 myolddata 的文件夹和所有可能在它?谢谢。
    • 是的,这绝对正确。 | 是这里的正则表达式替换。
    • 我今天无法测试 - 可能是在周末之后,但我会回复你!
    • 嗨,anubhava,我今天测试了你的配方,效果如愿 - 非常感谢。我将您的答案标记为正确。我也可以标记一个小请求以进行额外说明吗?仅分离出文件名匹配我导出了简化的 RewriteRule ^(oldfile\.php$) /index.html? [L,NC,R=301] - 当 'oldfile.php' 位于根目录时有效。我如何修改它以匹配所有可能找到的 oldfile.php 副本?谢谢!
    • 谢谢。你是真正的正则表达式忍者!!祝你有美好的一天阿努巴瓦 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2018-10-03
    相关资源
    最近更新 更多