我已经设置了重定向
RedirectMatch 301 /data(*)http://www.site.com/sites/default/files/datassheets $ 1
我收到以下错误 http://www.site.com/sites/default/files/datasheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheetssheets/doc3542.pdf 当我将数据表目录重命名为其他东西时,它可以工作,但这不是一个选项
这是一个apache错误还是我做错了什么
答案 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
开头的任何页面都不应该存在,但是您将它们重定向到与您认为完全相同的模式匹配的页面。您可能需要将正则表达式扩展为仅匹配您的意图。