0

来自这个线程的另一个问题。我无法解决的唯一剩下的项目是现在不存在的文件夹“/team/”的列表,但是如果我将它添加到我的 .htaccess 文件中,它会破坏所有其他 .htaccess 中的文件条目那个文件夹,即

redirect 301 /team/ /team.html
redirect 301 /team/joe_bloggs.htm /team.html
redirect 301 /team/joe_bloggs.html /team.html
redirect 301 /team/bill_smith.htm /team.html
redirect 301 /team/bill_smith.html /team.html

如果我随后尝试访问 /team/joe_bloggs.htm,我需要

/team.html/joe_bloggs.htm

如果我能解决这个问题,它可能会帮助我了解如何解决我的原始问题并减少我的 .htaccess 文件中大量的重定向页面列表,因此我们非常感谢您的帮助。

4

2 回答 2

1

您需要更改顺序,并redirect 301 /team/ /team.html在末尾加上“”。它逐行读取,如果找到合适的内容,则将其替换。

此外,我认为您需要学习添加 ^ 和 $ 字符。^ 表示表达式应该开始,$ 表示表达式应该结束。所以,^/team/$意思是,它应该完全是 /team/ 并且它不会匹配/team/joe_bloggs.htm

于 2009-12-25T11:57:24.923 回答
0

Redirect指令适用于路径前缀。在这种情况下,您的第一个指令 ( /team/) 中使用的路径前缀匹配,并且路径的其余部分将附加到新的 URL 路径。

[…] 任何以 开头的请求URL-Path都会在 target 的位置向客户端返回一个重定向请求URL。超出匹配的附加路径信息URL-Path将附加到目标URL

请尝试RedirectMatch

RedirectMatch 301 ^/team/ /team.html
于 2009-12-25T11:49:23.703 回答