Редирект при несоответствии URL на нужный

EGarin
На сайте с 12.11.2014
Offline
7
321

Всем привет!

Есть скрипт, который передает и возвращает GET параметры.

Когда он получает ответ, то сформированная страница становится доступна по адресу:

sait.com/?l=blablabla

Как сделать проверку URL средствами php и редирект на нужный? По сути, rewrite через php.

C sait.com/?l=blablabla на sait.com/papka/blablabla.html

PS. Через htaccess сделать не получится, потому что там уже прописан rewrite для таких ссылок и если добавить RewriteCond %{QUERY_STRING}, то получим бесконечный цикл переадресаций.

Так что вижу выход в редиректе через php.

Самый лучший конверт мобильного трафа! Без санкций ПС! (http://waplab.net)
Polkan
На сайте с 28.09.2005
Offline
102
#1
EGarin:
Всем привет!
Есть скрипт, который передает и возвращает GET параметры.
Когда он получает ответ, то сформированная страница становится доступна по адресу:

sait.com/?l=blablabla

Как сделать проверку URL средствами php и редирект на нужный? По сути, rewrite через php.
C sait.com/?l=blablabla на sait.com/papka/blablabla.html

PS. Через htaccess сделать не получится, потому что там уже прописан rewrite для таких ссылок и если добавить RewriteCond %{QUERY_STRING}, то получим бесконечный цикл переадресаций.
Так что вижу выход в редиректе через php.

<?php 

header('Location: http://sait.com/papka/blablabla.html');
exit;
?>
WordPress-плагин для Apishops (http://p-api-shop.ru/) P-API-Shop WooCommerce-плагин для Apishops (http://woo-apishops.ru/) Woo-Apishops
EGarin
На сайте с 12.11.2014
Offline
7
#2
Polkan:
<?php 

header('Location: http://sait.com/papka/blablabla.html');
exit;
?>

Идею понял. Страницы динамические, т.е. урл будет зависеть от того, что передали/вернули через get: blabla, neblbala, ololo123 итд.

J
На сайте с 20.02.2014
Offline
120
jkm
#3

Или проверять переменную %{THE_REQUEST} "GET /?l=blablabla HTTP/1.1"


RewriteCond %{THE_REQUEST} \ /\?l=([^&\ ]+)
RewriteRule ^ /papka/%1.html? [R=301,L]
EGarin
На сайте с 12.11.2014
Offline
7
#4
jkm:
Или проверять переменную %{THE_REQUEST} "GET /?l=blablabla HTTP/1.1"

RewriteCond %{THE_REQUEST} \ /\?l=([^&\ ]+)
RewriteRule ^ /papka/%1.html? [R=301,L]

И именно так и заработало! И без бесконечной переадресации.

Спасибо! 🍾

Polkan, спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий