我在处理一些应该很简单的事情时遇到了一些麻烦。我想301将目录中的所有内容重定向到新位置中的单个文件。将301从一个目录重定向到一个文件
在我.htaccess
,我已经尝试了以下...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/index.html
这...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/
这...
Redirect 301 /myDir http://www.mydomain.com/myNewDir
的问题是每个人都简单地映射01内的每个文件,并将其附加到目标网址的末尾。
谷歌搜索后,我看到的东西,说要做到这一点...
Redirect 301 ^/myDir(.*) http://www.mydomain.com/myNewDir
但是,这只是做同样的事情...它映射现有的文件位置的URL的结尾。
很容易在网上找到很多“.htaccess重定向”教程,但它们似乎只显示了诸如“一对一文件映射”或“一对一目录映射”的明显例子。这些教程似乎也忽略了解释各种相关的文件指令以及如何正确使用它们。
此特定的托管帐户是垃圾并且还安装了FrontPage扩展。修改重写失败(打破整个站点),但Redirect 301
线路正常运行。因此,直到我可以将这个新的(非FrontPage)网站迁移到更强大的主机帐户,我需要坚持使用Redirect 301
单行。
我怎么能简单地用一个Redirect 301
来一切内/myDir/
重定向到位于/myNewDir/index.html
的同一个文件? (如果可能,我宁愿只使用/myNewDir/
)。 请详细解释您的解决方案中使用的文件指令。
UPDATE:
以前接受的答案是行不通的。
例子:
RedirectMatch 301 /myDir1/(.*) http://mydomain.org/newpath/myDir1/index.html
...是给“重定向过多发生试图打开”错误。
这是因为/myDir1/(.*)
是字符串中的匹配任何地方因此,如果目标URL中包含/myDir1/
的任何地方,而不仅仅是根,它会被重定向到一个讨厌的循环。
查看我自己发布的答案以获得正确的解决方案。
很好,谢谢。这开始让我发疯。这适用于将整个目录(每页内)的内容引导到给定页面。 – Tom
另外值得一提的是,如果您之前有301重定向到错误的位置(将页面附加到目标URL),您可能需要清除浏览器缓存,然后才能从.htaccess获取新规则。 – Russ