2015-06-19 81 views
1

我目前正在看一個htaccess文件。它包含此內容什麼是「!」在重寫Rule中做什麼?

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

什麼是「!」做和這是一個有效的重定向的CSS和其他重要文件?

+2

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule它在'RewriteRule'文檔部分的一半左右。不容易找到。 –

回答

3

!基本上意味着NOT。換句話說,只要以下不匹配,應用規則。

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

他說了什麼?而且,我記得,你可以控制NOT應該瞄準的部分 – mowgli

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。

+0

這很有趣,你能告訴我第一個RewriteRule中的「 - 」是什麼嗎? – MooCow

+1

這只是意味着不做任何事情,因爲沒有替代字符串。 –

相關問題