Использование .htaccess для удаления параметров PHP из URL (без перезагрузки страницы)

#.htaccess

#.htaccess

Вопрос:

Я пытаюсь понять, как удалить параметры $ _GET из URL.

Я использую PHP для переключения содержимого, чтобы я мог использовать одну страницу (index.php ).

Примером URL является: www.example.com/?page=test ИЛИ www.example.com/index.php?page=test

Я хочу, чтобы это было так, если что-нибудь после и включая? удален.

Таким образом, результат всегда будет отображаться: www.example.com / ИЛИ www.example.com

Заранее благодарю.

Ответ №1:

Поместите этот код в свой DOCUMENT_ROOT/.htaccess файл:

 RewriteEngine On

RewriteCond %{QUERY_STRING} ^page=test$
RewriteRule ^(index.php)?$ $0? [L,NC]
  

Комментарии:

1. Спасибо за помощь, нужно просто загрузить индексную страницу, а запрос все еще находится в URL, я хочу, чтобы URL был чистым, без запросов, для всех запросов, не могли бы вы также объяснить, что все это значит, пожалуйста? Заранее благодарю.

2. Существует ? in $0? , который удалит любой запрос на перезаписанной странице. Вы запросили без перезагрузки страницы , поэтому URL в браузере по-прежнему показывает строку запроса, но внутренне ее нет.

3. Та же проблема? (в справочных целях) Я нашел способ обойти это, создав «виртуальные» каталоги, используя .htaccess для определенных параметров, таких как: www.example.com/folder / распознается как www.example.com/index.php?page=folder (Google: виртуальный каталог .htaccess), и спасибо за вашу помощь, анубхава.

4. Если у вас все получится, вы можете пометить этот ответ как принятый, нажав на галочку в левом верхнем углу этого ответа.