@WQP

Как изменить вид GET PHP?

Здравствуйте, имеется сайт на WP и к нему необходимо "прикрутить" функцию отображение нормальных GET запросов (для одной страницы).

1) Есть сайт site.ru
2) Я создал страницу site.ru/user
3) Делаю get запрос site.ru/user?id=name и всё работает

Как сделать, чтобы при запросе site.ru/user/name отображалась та же информация?

Пробовал:
RewriteRule ^([a-z_A-Z_0-9]+)$ user?id=$1
RewriteRule ^([a-z_A-Z_0-9]+)/$ user?id=$1

Но сразу нельзя получить доступ к site.ru/user/name т.к. перед этим нужно сделать site.ru/user?id=name и $_GET['id'] не может уловить id.
  • Вопрос задан
  • 2572 просмотра
Пригласить эксперта
Ответы на вопрос 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
AddDefaultCharset utf-8
RewriteEngine on
RewriteBase /

RewriteRule ^/user/([^\/]+)/?$ /user?id=$1 [QSA]

Если я правильно понял что Вы хотите
Ответ написан
@Snewer
Не знаю как на WP, но в своих проектах делаю так:

.htaccess:
AddDefaultCharset utf-8
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^([-a-zA-Z0-9_\/]*)$    index.php?r=%{REQUEST_URI} [QSA,L]


php:
$r = explode('/',trim($_GET['r'],'/'));

откуда $r[0], $r[1], $r[N] - и есть разделы URL строки.
т. е. мы просто скармливаем строку запроса скрипту
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега PHP
WP хранит переданные переменные в массиве $wp_query->query_vars. Желательно пользоваться им, а не забирать пеменные из глобального массива.
Но уж если очень хочется вернуть их обратно, то так:
$_GET = $wp_query->query_vars;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы