免责声明:我对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.pdf
变为mydomain.com/files/files/files/files/files/files/sub/some.pdf
。我假设它遇到一个无限循环但在多次重定向后取消它。
非常感谢您的帮助。
答案 0 :(得分:1)
RedirectMatch 301 ^([^/]+\.pdf)$ files/$1
此处的关键是使用[^/]+
代替.+
,这样您就不会将/
作为模式的一部分。这会将您的模式隔离为仅匹配根目录中的pdf文件。