0

免责声明:我不太擅长 mod_rewrite 或 regex。

我的根 .htaccess 中有以下内容:

RedirectMatch 301 ^(.+\.pdf)$ files/$1

我想要实现的是.pdf 根文件夹中具有扩展名的任何文件都将被重定向到/files子目录。

问题是这与.pdf网站上的任何内容相匹配,并且在子文件夹中似乎会再次出现,例如

mydomain.com/some.pdf变得mydomain.com/files/some.pdf如预期。

然而:

mydomain.com/sub/some.pdfmydomain.com/files/files/files/files/files/files/sub/some.pdf当我根本不想重写这个 url 时就变成了。我假设它遇到了一个无限循环,但在多次重定向后会自行取消。

非常感谢您的帮助。

4

1 回答 1

1

RedirectMatch 301 ^([^/]+\.pdf)$ files/$1

这里的关键是使用[^/]+而不是.+这样你就不会/成为你的模式的一部分。这会将您的模式隔离为仅匹配根目录中的 pdf 文件。

于 2013-03-21T17:04:45.107 回答