2013-04-30 2 views
1

У меня есть .htacces фил (для CodeIgniter), так что мне не нужно включать index.php файла:Как остановить .htaccess из удаления строки запроса?

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

Как бы сохранить строку запроса?

+0

$ config ['enable_query_strings'] = true; – qwertzman

ответ

2

Установите флаг QSA (строки запроса на добавление) в вашем RewriteRule:

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

От documentation:

Когда замена URI содержит строку запроса, поведение по умолчанию RewriteRule является отмените существующую строку запроса и замените ее на новую. Использование флага [QSA] приводит к объединению строк запроса.

+0

Не знал этого флага! Благодаря! –

+0

Спасибо Тим Купер – Bradley