Apache将简单的重写规则翻译成简单的英语

时间:2015-02-20 13:28:07

标签: php apache .htaccess rewrite

我想在PHP中编写相当于一些重写规则的内容,但我不熟悉它们,因此需要准确的英文翻译:

RewriteRule ^assets($|/) - [L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /index.php?path=$1 [NC,L,QSA]

据我所知(我猜这有点不对)这就是说:

  • 如果路径以资产开头,则不执行任何操作
  • 如果path等于index.php,则不要执行任何操作
  • 如果路径不是文件或目录,则将其重定向到index.php?path=<path>

不知道[NC,L,QSA]做了什么。我需要它正确准确地编写PHP。感谢。

1 个答案:

答案 0 :(得分:0)

  • 规则&amp;条件解释:

    • 您的前两个陈述是正确的
    • 声明3几乎正确:原始网址中的任何查询字符串(这是?之后的部分)都会附加到index.php?path=<path>

  • 标记(这些是括号中的代码)简而言之:

    • L:如果它触发,这是应用的最后一条规则
    • NC:不区分大小写的模式匹配
    • QSA:原始网址的查询字符串会附加到替换网址中的任何查询字符串中。

有关详细信息,请参阅docs(无论如何这是合情合适的。)