Назад | Перейти на главную страницу

Как я могу использовать mod_rewrite, чтобы удалить все, что находится после? (вопросительный знак) в URL?

Как я могу использовать mod_rewrite, чтобы удалить все, что находится после? (вопросительный знак) в URL?

Например:

http://127.0.0.1/ALL_FILES.php?test=1

после mod_rewrite:

http://127.0.0.1/ALL_FILES.php

Для php это означает, что суперглобальный объект $ _GET всегда будет пустым.

Цитата из mod_rewrite документы:

Шаблон не будет сопоставлен со строкой запроса. Вместо этого вы должны использовать RewriteCond с переменной% {QUERY_STRING}

Что-то вроде:

 RewriteCond %{QUERY_STRING} .
 RewriteRule ^/index.php /index.php? [L,R]

должен делать то, что вам нужно. Если вам не важно, что отображается для пользователя, а только то, что передается в php, вы можете не указывать флаг R.

RewriteCond %{QUERY_STRING} .+
RewriteRule ^(.*)$ /$1? [R=301,L]