0

我已经设置了重定向

重定向匹配 301 /data(.*) http://www.site.com/sites/default/files/datassheets $1

我收到以下错误 http://www.site.com/sites/default/files/datasheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheets/doc3542.pdf 当我将数据表目录重命名为它可以工作的其他东西时,但这不是一个选项

这是 apache 错误还是我做错了什么

4

2 回答 2

1

您的 RedirectMatch 正则表达式/data(.*)在每个请求上都匹配,因此将无限期地继续。

完整的重定向规则是什么样的取决于您的用例。以下规则处理了无限循环问题,并将/data/之后的内容重定向到http://www.site.com/sites/default/files/datasheets/的新结构。

RedirectMatch 301 ^/data/(.+) http://www.site.com/sites/default/files/datassheets/$1

/data/ my-cool-file => http://www.site.com/sites/default/files/datassheets/ my-cool-file

于 2013-02-19T19:21:19.590 回答
0

(.*)您之后的部分与您的网址/data匹配sheets。然后,您将获取该匹配并将其附加到重定向上。这就是给你重复词的原因。我猜你也在重定向到你自己的网站,这就是为什么它会重复很多次。

您希望在要附加到重定向的数据之后出现什么?如果是查询字符串,可以[QSA]在末尾添加一个标志来维护查询字符串。

例子:

RedirectMatch 301 /data/(.*) http://www.site.com/sites/default/files/datassheets/$1 [QSA]

此外,考虑到您告诉所有人以任何目录开头的任何页面data都不应该存在,但您正在将它们重定向到与您应该摆脱的相同模式匹配的页面。您可能需要扩展正则表达式以仅匹配您想要的。

于 2013-02-19T19:09:24.887 回答