.htaccess重定向根文件夹中的.pdf / .doc文件

时间:2017-02-02 06:50:29

标签: php wordpress .htaccess pdf redirect

我正在尝试创建类似于下面的重写规则

RewriteRule ^/?(.*+/.pdf)$ /site-content/import/uploads/$1 [L,R=301]

任何与

类似的网址请求
http://hostname/filename.pdf

应该重定向到

http://hostname/site-content/import/uploads/filename.pdf

但是如果请求文件名在子文件夹中,它不应该重定向,并且它不应该重定向.pdf或.doc文件以外的URL

http://hostname/sub-page/filename.pdf
http://hostname/sub-page/sub/filename.pdf
http://hostname/sub-page
http://hostname/image.png

2 个答案:

答案 0 :(得分:1)

尝试正则表达式^/[^/]+\.(pdf|doc)$。将首先匹配/,不是/且以.pdf.doc结尾的任何字符。

Regex101 example

RewriteRule ^/([^/]+\.(?:pdf|doc))$ /site-content/import/uploads/$1 [L,R=301]

答案 1 :(得分:1)

你可以用这个:

RewriteRule ^([^/.]+\.pdf)$ /site-content/import/uploads/$1 [R,L]

或者这个:

RedirectMatch ^/([^/.]+\.pdf)$ /site-content/import/uploads/$1

在测试此重定向之前清除浏览器缓存。

编辑:

以上示例仅重定向.pdf文件,重定向.pdf和.doc,您可以使用此规则:

RewriteRule ^[^/.]+\.(pdf|doc)$ /site-content/import/uploads%{REQUEST_URI} [L,R]