重写规则——它们到底是什么意思
Rewrite Rule - What Exactly Do They Mean
我正在使用 htaccess
文件重写我的所有页面,并且一切正常,除了我不得不承认我不知道某些部分的确切含义。例如,以下几行的含义和作用是什么:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
还有,能不能弄清楚[NC,L,QSA]
和([\w-]+)
中的字母的意思。非常感谢任何对此的帮助。
RewriteCond %{REQUEST_FILENAME} !-f
如果请求已经针对现有文件,此行告诉服务器停止重写。
RewriteCond %{REQUEST_FILENAME} !-d
如果请求已经针对现有目录,则此行告诉服务器停止重写。
[NC,L,QSA]
这些是重写标志,
NC=> No Case,使重写模式区分大小写,
L=> 表示最后,它告诉服务器停止处理其他重写规则,如果规则匹配它的模式。
QSA=> 查询字符串附加,将查询字符串附加到新目标 url。
来源:
阿帕奇 mod_rewrite =>
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
我正在使用 htaccess
文件重写我的所有页面,并且一切正常,除了我不得不承认我不知道某些部分的确切含义。例如,以下几行的含义和作用是什么:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
还有,能不能弄清楚[NC,L,QSA]
和([\w-]+)
中的字母的意思。非常感谢任何对此的帮助。
RewriteCond %{REQUEST_FILENAME} !-f
如果请求已经针对现有文件,此行告诉服务器停止重写。
RewriteCond %{REQUEST_FILENAME} !-d
如果请求已经针对现有目录,则此行告诉服务器停止重写。
[NC,L,QSA]
这些是重写标志,
NC=> No Case,使重写模式区分大小写, L=> 表示最后,它告诉服务器停止处理其他重写规则,如果规则匹配它的模式。
QSA=> 查询字符串附加,将查询字符串附加到新目标 url。
来源:
阿帕奇 mod_rewrite => http://httpd.apache.org/docs/current/mod/mod_rewrite.html