DLE 9.2. 301. Закавыка с id при редиректе.

muratti
На сайте с 31.05.2008
Offline
238
839

Нужно было сделать редирект с подобных урлов http://site.ru/index.php?newsid=100500 на http://site.ru/new-page.html

Так, ясный перец, не срабатывает:

Redirect 301 /index.php?newsid=100500 http://site.ru/new-page.html

Редирект срабатывает при любых вариантах урла, кроме варианта, когда в урле "?".

Нашел другой способ, но тут есть один нюанс.

Например, делаем так:

RewriteCond %{QUERY_STRING} newsid=100
RewriteRule ^index\.php$ http://site.ru/965-svobodu-anjele-devis.html$1? [R=301,L]

И с такого урла http://site.ru/index.php?newsid=100 редиректит на такой http://site.ru/965-svobodu-anjele-devis.html

Вроде, все отлично, но...

Добавляем еще редирект:

RewriteCond %{QUERY_STRING} newsid=72
RewriteRule ^index\.php$ http://site.ru/1002-razrazi-tebya-bobry.html$1? [R=301,L]

И с такого урла http://site.ru/index.php?newsid=72 редиректит на http://site.ru/965-svobodu-anjele-devis.html, а нужно-то редиректить на http://site.ru/1002-razrazi-tebya-bobry.html

В общем, закавыка в id. Как можно решить эту маленькую проблемку?))

KM
На сайте с 28.02.2012
Offline
1
#1

Если я правильно понял Вас, то вот:


RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} page=([^&]*)
RewriteRule ^(index\.php)?$ /%1? [R=301,L]
Баннерная сеть + псевдоподписки (2 в 1)! Впервые в WAP`e!
(http://rusban.su) Конвертабельный лейдинг! Вы не платите за исходящее сообщение!
siv1987
На сайте с 02.04.2009
Offline
427
#2

Для подобных урлов с чпу, надо писать для каждого отдельный редирект

RewriteCond %{QUERY_STRING} newsid=100500

RewriteRule ^(index\.php)?$ /200500-my_trulala.html? [R=301,L]

RewriteCond %{QUERY_STRING} newsid=500

RewriteRule ^(index\.php)?$ /200-rere.html? [R=301,L]

muratti
На сайте с 31.05.2008
Offline
238
#3
Karpov-ml:
Если я правильно понял Вас, то вот:

Не, это не то. Мне надо один список разных урлов редиректнуть на другие разные с ЧПУ уже.

siv1987:
RewriteCond %{QUERY_STRING} newsid=100500
RewriteRule ^(index\.php)?$ /200500-my_trulala.html? [R=301,L]

RewriteCond %{QUERY_STRING} newsid=500
RewriteRule ^(index\.php)?$ /200-rere.html? [R=301,L]

Такой вариант срабатывает как и мой из стартпоста:

С такого урла http://site.ru/index.php?newsid=72 редиректит на http://site.ru/965-svobodu-anjele-devis.html, а нужно-то редиректить на http://site.ru/1002-razrazi-tebya-bobry.html

Загвоздка в id. В стартопсте редиректит с урла с id 100 (newsid=100) на урл /965-svobodu-anjele-devis.html, а с урла с id 72 (newsid=72) должно редиректнуть на /1002-razrazi-tebya-bobry.html, а оно редиректит на урл /965-svobodu-anjele-devis.html, видимо потому, что в предыдущем урле с которого редирект присутствует id 100 (newsid=100), а в урле на который идет редирект присутствует id 1002 (как бэ 1002).

В общем, как решить косяк непонятно. :D

siv1987
На сайте с 02.04.2009
Offline
427
#4
muratti:
Загвоздка в id. В стартопсте редиректит с урла с id 100 (newsid=100) на урл /965-svobodu-anjele-devis.html, а с урла с id 72 (newsid=72) должно редиректнуть на /1002-razrazi-tebya-bobry.html, а оно редиректит на урл /965-svobodu-anjele-devis.html, видимо потому, что в предыдущем урле с которого редирект присутствует id 100 (newsid=100), а в урле на который идет редирект присутствует id 1002 (как бэ 1002).

А, ну да

RewriteCond %{QUERY_STRING} ^newsid=100500$

...

RewriteCond %{QUERY_STRING} ^newsid=500$

muratti
На сайте с 31.05.2008
Offline
238
#5
siv1987:
А, ну да
RewriteCond %{QUERY_STRING} ^newsid=100500$
...
RewriteCond %{QUERY_STRING} ^newsid=500$

Не, все равно редиректит не туда, да к тому же еще и в конце урла добавляет .htmlindex.php ))

siv1987
На сайте с 02.04.2009
Offline
427
#6
muratti:
Не, все равно редиректит не туда, да к тому же еще и в конце урла добавляет .htmlindex.php ))

Добавляется в вашем варианте, в тот который я приводил ничего подобного не происходит. А то что снова редиректит не туда, даже странно. Проверьте еще раз правильно ли написан урл редиретка у этого ид; точно установлены маркеры на все %{QUERY_STRING} newsid=; после редактирования htaccess-а нажмите пару раз f5 для проверяемого урла.

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