所以我想设置所有请求通过index.php。
一些谷歌搜索给了我这个mod_rewrite
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !(index\.php|public|css|js|robots\.txt)
RewriteRule ^ index.php [L,QSA]
</IfModule>
这很有效。但是,如果我真的点击index.php,我不希望它运行。 所以 我希望www.domain / test被视为www.domain / index.php / test,它确实如此。
但是如果我在浏览器中点击www.domain / index.php / test,它应该做同样的事情,但它会重定向到某个地方的主文件夹。
另外,我读到我不希望这种重定向发生在css,js和robots上。
如何使规则不对index.php做任何事情?
答案 0 :(得分:1)
这应该有用;
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|public|css|js|robots\.txt|test)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>