contaktt
10.11.2016 11:46
0
Здравствуйте.

Подскажите пожалуйста, как сделать редирект 301 с двумя GET переменными?

Проблема в следующем:

если list=1, или 0, или любому символу, кроме цифр

id='при этом может быть любое число, и только число'


www.site.org.ua/view_main.php?id=54&list=1www.site.org.ua/view_main.php?id=54&list=0www.site.org.ua/view_main.php?id=54&list=dfghfg


преобразовать к виду:

www.site.org.ua/view_main.php?id=54 т.е. без GET-переменной list

При других значениях list адрес не трогать.

Вот что я набросал, но почему-то не работает:

RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} ^id=(\d+)$ [NC]
RewriteCond %{QUERY_STRING} ^list=1$ [NC,OR]
RewriteCond %{QUERY_STRING} ^list=0$ [NC,OR]
RewriteCond %{QUERY_STRING} ^list=(\D+)$ [NC]
RewriteRule ^(.*)$ www.site.org.ua/view_main.php?id=%1? [R=301,L]

Не пойму, что не так?
rudenko
11.11.2016 10:01
1
А не проще ли проводить такую проверку на уровне PHP дописав несколько строк в скрипте view_main.php?
IMHO при помощи RewriteEngine не стоит решать 100% задач с редиректом.
contaktt
11.11.2016 11:36
0
для кого как...

я считаю не проще. так обычно многие програмеры делают - редиректы с помощью модуля mod_rewrite и конфигурационного файла .htaccess. И по безопасности это понадёжнее, хотя и геморно иногда бывает.

проблему уже решил... были ошибки в синтаксисе и очерёдности правил
Тема закрита.