我试图阻止在这种情况下wordpress,重写某些URL.在这种情况下,我试图阻止它在uploads目录中处理请求,而不是将它们保留到服务器的404页面.所以我假设添加规则一样简单:
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/
该规则应该评估为false,并使这些规则链失败,从而停止重写.但是没有…也许我需要在表达式中匹配封面的全部字符串?
RewriteCond %{REQUEST_URI} !^/wp-content/uploads/.*$
不,也不是.所以在抓了我的头后,我做了一个理智的检查.实际模式可能是错误的.所以我做一个简单的测试用例.
RewriteCond %{REQUEST_URI} ^/xyz/$
在这种情况下,当且仅当所请求的URL为/ xyz /并显示服务器的404页面以进行任何其他页面时,才会进行重写.这正是我的预期.所以我只是坚持下去!否定这种模式.
RewriteCond %{REQUEST_URI} !^/xyz/$
现在我期待看到与上述情况完全相反的情况.重写不应该发生在/ xyz /但是其他可能的URL.相反,对于每个URL / xyz /和其他URL都会进行重写.
所以,在RewriteConds中使用否定的正则表达式在Apache中被破坏,或者有一些基本的我不了解它.哪一个?
服务器是Apache2.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.PHP$- [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/wp-content/uploads/ RewriteRule . /index.PHP [L] </IfModule>