我正在尝试创建类似于下面的重写规则
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
答案 0 :(得分:1)
尝试正则表达式^/[^/]+\.(pdf|doc)$
。将首先匹配/
,不是/
且以.pdf
或.doc
结尾的任何字符。
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]