2015-11-10 58 views
1

我使用htaccess文件來重寫我的所有頁面,並且一切都工作得很好,除了我必須承認不確切地知道某些部分是什麼意思。例如,有什麼事以下行的意思是,做:重寫規則 - 它們究竟意味着什麼

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

此外,你可以清理在[NC,L,QSA]字母的含義以及([\w-]+)。任何幫助,這是非常感謝。

回答

0
RewriteCond %{REQUEST_FILENAME} !-f 

如果請求已存在於現有文件中,此行將告訴服務器停止重寫。

RewriteCond %{REQUEST_FILENAME} !-d 

該行告訴服務器如果請求已經存在於現有目錄中,則停止重寫。

[NC,L,QSA] 

這些都是重寫標誌,

NC =>任何情況下,使得重寫模式的情況下,insentive, L =>表示最後,它告訴服務器如果停止等待處理其他重寫規則,規則與其模式相符。

QSA =>查詢字符串附加,將查詢字符串附加到新的目標url。

來源:

的Apache的mod_rewrite => http://httpd.apache.org/docs/current/mod/mod_rewrite.html

標誌=> https://httpd.apache.org/docs/2.4/rewrite/flags.html

+0

謝謝Starkeen,這是非常有幫助的。那麼'([\ w - ] +)'部分呢?我得到的數字是'([0-9] +)',但爲什麼這只是一個'W'? –

+1

([\ w - ] +)會匹配數字,字母和超過一次或多次,例如([A-Za-z0-9-], – starkeen

+0

啊。非常感謝您爲我清除這些信息。要知道這些事情是什麼意思和做的:-) –