我目前正在看一个htaccess文件。它包含此内容什么是“!”在重写Rule中做什么?
RewriteEngine On
RewriteRule !\.(css|jpg|png|xml)$ index.php
什么是“!”做和这是一个有效的重定向的CSS和其他重要文件?
我目前正在看一个htaccess文件。它包含此内容什么是“!”在重写Rule中做什么?
RewriteEngine On
RewriteRule !\.(css|jpg|png|xml)$ index.php
什么是“!”做和这是一个有效的重定向的CSS和其他重要文件?
!
基本上意味着NOT
。换句话说,只要以下不匹配,应用规则。
# anything that does NOT end in .css, .jpg, .png, or .xml
# send to index.php
RewriteRule !\.(css|jpg|png|xml)$ index.php
他说了什么?而且,我记得,你可以控制NOT应该瞄准的部分 – mowgli
更具体地讲,它说,如果不那些扩展然后重写index.php文件。
在这个例子中,
RewriteRule !\.(css|jpg|png|xml)$ index.php
这也可以因此,无论如何要忽略你可以做的文件写成
#if these file extensions don't do anything and stop processing rules
RewriteCond %{REQUEST_URI} \.(css|jpg|png|xml)$
RewriteRule^- [L]
#else send everything to php
RewriteRule . /index.php [L]
。但是你的规则更短。这是有效的回答你的问题,以便某些文件不会路由到index.php。
这很有趣,你能告诉我第一个RewriteRule中的“ - ”是什么吗? – MooCow
这只是意味着不做任何事情,因为没有替代字符串。 –
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule它在'RewriteRule'文档部分的一半左右。不容易找到。 –