我正在清理我的网络空间,我已将所有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等等,从而导致无限重定向。
我已尝试从匹配中删除正斜杠或“上传”一词,但没有成功。
答案 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
位于网络根目录/
。