有 301 通配符匹配吗?
Posted
技术标签:
【中文标题】有 301 通配符匹配吗?【英文标题】:Is there a 301 wildcard match? 【发布时间】: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 和建议将非常有价值,因此欢迎所有见解!
【问题讨论】:
【参考方案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 副本?谢谢!
谢谢。你是真正的正则表达式忍者!!祝你有美好的一天阿努巴瓦 :)以上是关于有 301 通配符匹配吗?的主要内容,如果未能解决你的问题,请参考以下文章