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