.htaccess 有301通配符匹配吗?

.htaccess 有301通配符匹配吗?,.htaccess,redirect,http-status-code-404,http-status-code-301,.htaccess,Redirect,Http Status Code 404,Http Status Code 301,我有很大的困难,现场所有的301重定向,似乎需要一个完整的网站重新设计。整个子目录及其广泛的内容不再存在。例如,如果“myolddata”是一个不再存在的文件夹,其中包含无数个文件,而每个文件都不再存在,那么我想说“忘掉这些,直接转到索引页”。似乎没有其他方法可以关闭谷歌的大门&必应无休止地向我报告数以百万计的404。有没有一种有效的说法: Redirect 301 /myolddata/ /index.html Redirect 301 /myolddata/* /index.html 第

我有很大的困难,现场所有的301重定向,似乎需要一个完整的网站重新设计。整个子目录及其广泛的内容不再存在。例如,如果“myolddata”是一个不再存在的文件夹,其中包含无数个文件,而每个文件都不再存在,那么我想说“忘掉这些,直接转到索引页”。似乎没有其他方法可以关闭谷歌的大门&必应无休止地向我报告数以百万计的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和任何可以想象的参数——它们都不见了!”


您的帮助、评论和建议将是非常宝贵的,因此欢迎所有的见解

最好使用
mod_rewrite
规则,使用
301
状态代码。在
文档\u ROOT/.htaccess
文件中使用此代码:

RewriteEngine On

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

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

您好@阿努巴瓦,我能请你再给我描述一下吗?我认为第一部分(RewriteRule^(oldfile\.php$)是指具有任意参数的文件,但第二部分(| myolddata(/|$)是指名为myolddata的文件夹以及其中可能包含的所有内容吗?谢谢。是的,这是绝对正确的<代码>|这里是regex替换。我今天不能测试它-可能在周末之后,但我会给你回复!你好,阿努巴瓦,我今天测试了你的配方,效果如预期——非常感谢。我认为你的答案是正确的。我可以附加一个额外澄清的小请求吗?分离出仅匹配的文件名,我导出了简化的重写规则^(oldfile\.php$)/index.html?[L,NC,R=301]-当“oldfile.php”位于根目录中时,此选项有效。我如何修改它以匹配oldfile.php的所有副本,无论它们在哪里都可以找到?非常感谢。非常感谢。你真是一个雷格士忍者!!祝你今天过得愉快阿努巴瓦:)