1

我有一个 .htacces fil(用于 codeigniter),因此我不需要包含 index.php 文件名:

RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

这按预期工作:

http://domain.com/controller/method变为http://domain.com/index.php/controller/method

但是,这不是故意的:

http://domain.com/controller/method/?option=yes变为http://domain.com/index.php/controller/method

我将如何保留查询字符串?

4

1 回答 1

2

在您的中设置QSA(查询字符串附加)标志RewriteRule

RewriteRule ^(.*)$ /index.php/$1 [L,QSA]

文档中:

当替换 URI 包含查询字符串时,默认行为RewriteRule是丢弃现有的查询字符串,并将其替换为新生成的查询字符串。使用 [QSA] 标志会合并查询字符串。

于 2013-04-30T23:53:33.773 回答