htaccess 301重定向错误

时间:2013-02-19 18:55:56

标签: .htaccess

我已经设置了重定向

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

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

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

2 个答案:

答案 0 :(得分: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/ 我 - 冷却 - 文件

答案 1 :(得分:0)

(.*)在您的网址中匹配/data后的sheets部分。然后,您将进行该匹配并将其附加到重定向上。这就是给你重复的话。我猜你也在重定向到你自己的网站,这就是为什么它重复这么多次。

您希望在追加重定向的数据后期待什么?如果它是查询字符串,您可以在末尾添加[QSA]作为标志来维护查询字符串。

示例:

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

另外,请注意,您告诉所有人在任何目录中以data开头的任何页面都不应该存在,但是您将它们重定向到与您认为完全相同的模式匹配的页面。您可能需要将正则表达式扩展为仅匹配您的意图。