htaccess переписать, но параметр запроса всегда отсутствует - PullRequest
0 голосов
/ 09 марта 2020

Я хочу перенаправить все:

example.com/{anything}

на:

example.com/index.php?q={anything}

Но когда я пытаюсь:

example.com/aaa?param=xxx

Я получил только «ааа» в параметр 'q' и '? param = xxx' потеряны. Почему? и как его сохранить?

мое текущее правило:

RewriteEngine on
RewriteRule ^(.*)$ index.php?a=$1 [QSA,L]

1 Ответ

0 голосов
/ 09 марта 2020

Вы проверяли, что вы на самом деле не получаете param? Для меня этот параметр не отображается в URL, но он действительно прошел.

Я просто использовал это:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ ip.php?q=$1 [QSA]

И попробовал это поверх ip. php:

<?php
if(isset($_GET['q'])) {
        echo "PASSED: ".$_GET['q'];
}
?>

В этом случае, когда я посещаю

mypage.com/SOMETHING 

кажется, что он остается там, но $ _GET параметр 'q' установлен на что-то. Без вышеуказанных правил перезаписи вы получите 500 внутренних ошибок.

Также проверьте правила вашего сервера mod_rewrite et c. для определенных особенностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...