使用htaccess重定向所有类型的文件

时间:2013-09-08 04:06:40

标签: regex .htaccess regex-negation

我正在清理我的网络空间,我已将所有PDF从顶级目录移动到较低级别的目录。我想重定向,以便旧的URL仍然有用。到目前为止我所拥有的是

RedirectMatch 301 (.*)\.pdf$ http://example.com/uploads/papers/$1.pdf

问题是,这也会将http://example.com/uploads/papers/paper.pdf之类的内容重定向到http://example.com/uploads/papers//uploads/papers/paper.pdf等等,从而导致无限重定向。

我已尝试从匹配中删除正斜杠或“上传”一词,但没有成功。

1 个答案:

答案 0 :(得分:1)

如果PDF以前仅位于根/

RedirectMatch 301 ^/([^/]+)\.pdf$ http://mysite.com/uploads/papers/$1.pdf

或者,例如在/uploads内;但是有些单一的目录

RedirectMatch 301 ^/uploads/([^/]+)\.pdf$ http://mysite.com/uploads/papers/$1.pdf

如果PDF可以位于任何地方,那么您需要将条件规则作为

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/uploads/papers/ [NC]
RewriteRule (.*)\.pdf$ /uploads/papers/$1.pdf [NC,L]

上述条件规则假设您的.htaccess位于网络根目录/