重写规则regexp

时间:2015-11-09 12:27:26

标签: regex wordpress .htaccess

我想问你们,因为我的重写规则存在问题而且我无法弄明白如何编写好的规则。 我有这个规则:

RewriteRule ^wp-content/uploads/(.*[^(.js|.swf)])$ authenticate.php?file=$1

我想做的是每当有人试图在authenticate.php上传目录中打开内容时将用户重定向到wp-content,我想将文件名发送到php

例如:

http://domain.tld/wp-content/uploads/2015/11/something.pdf

重定向到authenticate.php?file=something.pdf

但不幸的是我的正则表达式被打破了。有人能帮助我吗?

非常感谢你!

2 个答案:

答案 0 :(得分:1)

.htaccess中尝试使用

RewriteCond %{REQUEST_URI} !(?:js|swf)$ [NC]
RewriteRule ^wp-content/uploads/(.+)$ authenticate.php?file=$1 [NC,L]

对于http://domain.tld/wp-content/uploads/2015/11/something.pdf结果:http://domain.tld/authenticate.php?file=2015/11/something.pdf

答案 1 :(得分:0)

尝试使用带有负前瞻的正则表达式:

view.loadData(getString(R.string.info), "text/html", "utf-8");`

以下网址将与正则表达式匹配:

^.*?wp-content\/uploads\/.*?\.(?!js$|swf$)[^.]+$

但是,以http://cpsma.ie/wp-content/uploads/2015/09/CPSMA-Newsletter-No-35-Sept-2015-2.pdf .js结尾的类似网址不会匹配。因此,以下两个URL not 与正则表达式匹配:

.swf

你可以在这里测试这个正则表达式:

Regex101