Php 根文件夹中.pdf/.doc文件的.htaccess重定向
我正在尝试创建一个类似于下面的重写规则Php 根文件夹中.pdf/.doc文件的.htaccess重定向,php,wordpress,.htaccess,pdf,redirect,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://hostn
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
试试regex^/[^/]+\(pdf | doc)$
。将首先匹配/
,任何不是/
且以.pdf
或.doc
结尾的字符
您可以使用以下选项:
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]
那么完整的重写规则应该是什么样子的呢?我在这里检查了相同的规则,但出现了一些问题。这在htaccess上下文中不起作用,因为它包含一个前导斜杠。我使用了这个重写规则^([^/]+\.(?:pdf | doc))$/站点内容/导入/上载/$1[R,L]似乎在这里工作它是否也匹配
/filename.pdf
?而且它只匹配.pdf
文件。
RewriteRule ^[^/.]+\.(pdf|doc)$ /site-content/import/uploads%{REQUEST_URI} [L,R]