什么"!"在重写规则中做什么?

时间:2015-06-19 18:18:25

标签: .htaccess

我目前正在查看htaccess文件。它包含此内容

RewriteEngine On
RewriteRule !\.(css|jpg|png|xml)$ index.php

"!"这是否是css和其他关键文件的有效重定向?

2 个答案:

答案 0 :(得分:3)

!基本上意味着NOT。换句话说,只要以下内容不匹配,请应用规则。

# anything that does NOT end in .css, .jpg, .png, or .xml
# send to index.php    
RewriteRule !\.(css|jpg|png|xml)$ index.php

答案 1 :(得分:1)

更具体地说,如果那些扩展,则重写为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。

相关问题