Concrete5 提供此配置转储以在所有 URL 的开头插入省略的“index.php/”:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
但为什么RewriteRule
工作?
- 为什么替换字符串会出现在 URL 的开头,额外的“/”是从哪里来的?例如
http://<host>/foo
==>http://<host>/index.php/foo
。 - 为什么此规则不要求 [QSA] 保留查询字符串参数?
该规则客观上确实正确处理了这两种情况,但我无法从Apache 文档中推断出它为什么会这样,并且希望有耐心的讲师阅读我的farking手册的相关部分。