Проблемы PHP $ _GET с URL-адресами типа www.example.com/folder/file?id=2

Я меняю свой сайт, чтобы отображать такие удобные URL-адреса:

www.example.com/folder/topic

Работает отлично!

Но когда я добавляю параметр в URL:

www.example.com/folder/topic?page=2

$_GET перестает работать. Он вообще не распознает параметр. Я что-то упускаю? Параметр работал нормально до использования полных URL-адресов.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
822
5

Ответы 5

Если вы используете mod_rewrite, то это ваши правила нарушены. Либо строка запроса не передается, либо mod_rewrite отбрасывает все, что было после /тема.

Попробуйте добавить правило, которое вы можете сделать: www.example.com/folder/topic/2

Если вы хотите, чтобы ваши URL-адреса PHP были «дружественными», вам нужно использовать что-то вроде mod_rewrite Apache. Погуглите что-нибудь вроде "apache mod_write friendly url", и вы получите множество статей на эту тему.

Если это проблема с mod_rewrite, как это звучит, вы можете добавить флаг [QSA] в свое правило mod_rewrite, чтобы добавить строку запроса к перезаписанному URL-адресу, а не отбрасывать ее.

Ваше правило будет выглядеть так:

RewriteRule from to [QSA]

I'm changing my site to show friendly URLs

Вы делаете это с помощью mod_rewrite или реорганизуя файловую структуру? Если первое, вполне вероятно, что ваши правила могут нуждаться в доработке.

Если это реорганизация файлов, что вы получите, если вы вставите print_r($_GET) в www.example.com/folder/topic?page=2?

Ответ MrZebra правильный. Это позволит вам продолжать использовать строку запроса, как в конце URL-адреса, и вам не нужно так или иначе ожидать ее наличия.

Другие вопросы по теме