Я смотрю по всему Интернету, но я просто не могу найти решение.mod_rewrite Как сохранить строку запроса?
Я пытался передать строку запроса как другое значение $ _GET в php. Например, localhost/find/book
переводит на index.php?url=find/book
, но этого недостаточно для моей цели. Когда я пытаюсь сделать что-то вроде localhost/find/book?cols=name,library
, я хочу, чтобы это перевести на index.php?url=find/book?cols=name,library
, но вместо этого он переводится в index.php?url=find/book
, он просто пропускает вторую строку запроса.
Я уверен, что сделал это пару месяцев назад, и это сработало. Но теперь это просто не так, и я не знаю, почему.
Вот мои правила перезаписи:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
Спасибо заранее.
Вместо этого вы также можете использовать 'RewriteRule^(. *) $ Index.php [L, QSA]' и получить URL-адрес через '$ _SERVER ['REQUEST_URI']' в вашем index.php. Тогда нет необходимости в URL-адресе. – Malte
Подход @jeroen был именно тем, что я искал. Ваш ответ дает исходный URI. В моем случае мне не нужен дополнительный знак вопроса, я собирался взорвать последнюю часть QS на вопросительном знаке в любом случае, а затем еще раз взорвать запятую. Но спасибо! – gblblgl