Apache 将简单的重写规则翻译成简单的英语
Apache translate simple rewrite rule to plain english
我想将一些重写规则的等价物写入 PHP 但我不熟悉它们所以需要准确的英文翻译:
RewriteRule ^assets($|/) - [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /index.php?path= [NC,L,QSA]
据我所知(我猜这有点不对)这是在说这样的话:
- 如果路径以资产开头,则什么都不做
- 如果路径等于 index.php 那么什么都不做
- 如果路径不是文件或目录,则将其重定向到
index.php?path=<path>
不知道 [NC,L,QSA]
是做什么的。我需要它完全准确才能正确编写 php。谢谢
规则和条件解释:
- 你的前 2 条陈述是正确的
- 陈述3几乎是正确的:原始url中的任何查询字符串(这是
?
之后的部分)将附加到index.php?path=<path>
。
Flag(括号中的代码)细分:
- L:如果触发,则这是最后应用的规则
- NC:不区分大小写的模式匹配
- QSA:原始 url 的查询字符串附加到替换 url 中的任何查询字符串。
有关详细信息,请参阅 docs(无论如何都是可取的)。
我想将一些重写规则的等价物写入 PHP 但我不熟悉它们所以需要准确的英文翻译:
RewriteRule ^assets($|/) - [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /index.php?path= [NC,L,QSA]
据我所知(我猜这有点不对)这是在说这样的话:
- 如果路径以资产开头,则什么都不做
- 如果路径等于 index.php 那么什么都不做
- 如果路径不是文件或目录,则将其重定向到
index.php?path=<path>
不知道 [NC,L,QSA]
是做什么的。我需要它完全准确才能正确编写 php。谢谢
规则和条件解释:
- 你的前 2 条陈述是正确的
- 陈述3几乎是正确的:原始url中的任何查询字符串(这是
?
之后的部分)将附加到index.php?path=<path>
。
Flag(括号中的代码)细分:
- L:如果触发,则这是最后应用的规则
- NC:不区分大小写的模式匹配
- QSA:原始 url 的查询字符串附加到替换 url 中的任何查询字符串。
有关详细信息,请参阅 docs(无论如何都是可取的)。