0
我想至少了解.htaccess
如何工作。我使用從Zend框架的.htaccess
(因爲我經常使用的多數民衆贊成)配置搜索引擎友好的網址(mod_rewrite)
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
第一行設置環境變量,確定簡單enuf,但什麼後續的行嗎?什麼是-s -l [NC,L]
等。從apache docs我可以看到,
-s
- 指「一個大小的常規文件」。只是好奇是否有一個非常規的文件?-l
- 是指一個符號鏈接 - 什麼是-d
- 指directioryREQUEST_FILENAME
- 完整的本地文件系統中的文件路徑或腳本符合要求REQUEST_URI
- 在HTTP請求中請求的資源線。
假設我瀏覽到「http://localhost/some/path/here
」。 REQUEST_FILENAME
& REQUEST_URI
等於什麼?
反正,我現在解釋規則
- 如果請求是與大小或
- 一個文件,如果請求的是一個鏈接或
- 如果請求是一個目錄
- ...做些什麼...
RewriteRule ^.*$ - [NC,L]
是做什麼用的?- 那麼我想航線一切匹配上面的index.php
第一個'RewriteRule'會做什麼嗎? – 2010-07-23 13:12:15
第一條規則不會重寫URL,但會阻止使用第二個RewriteRule。因此,任何匹配RewriteConds的URL都不會被重定向到index.php。 – Sjoerd 2010-07-23 13:36:22