ExBB Community » » Раскрутка » Редирект средствми Mod_Rewrite

Страниц (1): [1]
 

1. Senc - 31 марта 2011 — 10:15 - перейти к сообщению
Если кто в теме, подскажите, пожалуйста, как средствами Mod_Rewrite сделать грамотный редирект со страниц вида
http://site/old/forums.php?forum=N на страницы
http://site/new/viewforum.php?f=N, где N-это целое число>0?
Корме кода такого вида (который не работает)
CODE:
RewriteEngine On
RewriteRule ^old/forums.php?forum=([0-1]+) http://site/new/viewforum.php?f=$1 [L,R=301]
Ничего в голову не лезет Не понял
2. igrok54 - 31 марта 2011 — 11:03 - перейти к сообщению
Ну начни с того, что не ([0-1]+), а ([0-9]+)...

А вообще, зачем указывать, что это 301 редирект?
можно так:
CODE:
RewriteRule ^old/forums.php?forum=([0-9]+)$ new/viewforum.php?f=$1 [L]

Файл .htaccess с этой строкой должен лежать в папке соответствующей URL http://site/
3. Senc - 31 марта 2011 — 11:13 - перейти к сообщению
Это очепятка. Не могу понять, почему правило такого вида
CODE:
RewriteRule ^article.jsp?id=(.*)$ index.php [L,R=301]

(кстати приведенное в одной из статей по этому модулю) у меня не работает
то есть страницу вида http://site/article.jsp?id=7 не перенаправляет, а если написать так
CODE:
RewriteRule ^article.jsp?$ index.php [L,R=301]
, то перенаправление страницы http://site/article.jsp на index.php идет?
(Добавление)
igrok54 пишет:
А вообще, зачем указывать, что это 301 редирект?
чтобы дать поисковику информацию, что страница перемещена навсегда(для передачи PR, например)
4. electron - 31 марта 2011 — 11:15 - перейти к сообщению
зачем париться со страницами, если можно сайт целиком перенаправить на другой адрес средствами .htaccess . если не подводит память, как-то так, кажется... :
CODE:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://site/new/$1 [R=301,L]
5. igrok54 - 31 марта 2011 — 11:21 - перейти к сообщению
jsp?$ - не совсем верное написание, так как знак $ означает конец строки.
Правильнее строка должна быть так:
CODE:
RewriteRule ^article.jsp?(.*)$ http://site.ru/index.php?$1 [L,R=301]

В строках с 301 редиректом обычно указывают и домен. Без указания 301 редиректа домен как правило отсутствует - внутреннее правило, я так понимаю.

Senc пишет:
чтобы дать поисковику информацию, что страница перемещена навсегда(для передачи PR, например)

Тогда мой код правим так:
CODE:
RewriteRule ^old/forums.php?forum=([0-9]+)$ http://site/new/viewforum.php?f=$1 [L,R=301]
6. Senc - 31 марта 2011 — 11:57 - перейти к сообщению
igrok54 пишет:
Тогда мой код правим так:

CODE:
RewriteRule ^old/forums.php?forum=([0-9]+)$ http://site/new/viewforum.php?f=$1 [L,R=301]

В том то и дело, что такое правило никуда не перенаправляет! Ввожу адрес
CODE:
http://site/old/forums.php?forum=17
и остаюсь на этой же странице

А вот если убрать в правиле убрать часть forum=([0-9]+)
CODE:
RewriteRule ^old/forums.php?$ http://site/new/viewforum.php?f=$1 [L,R=301]
то при вводе в браузер
CODE:
http://site/old/forums.php?forum=17

попадаем на
CODE:
http://site/new/viewforum.php?f=

То есть вот эту часть кода forum=([0-9]+) правило "не видит"
(Добавление)
electron пишет:
зачем париться со страницами, если можно сайт целиком перенаправить на другой адрес средствами .htaccess . если не подводит память, как-то так, кажется...

Неет этот вариант не пойдет так как структура динамических адресов изменились
7. M-A-X - 31 марта 2011 — 12:53 - перейти к сообщению
В
CODE:
RewriteRule ^old/forums.php?forum=([0-9]+)$ http://site/new/viewforum.php?f=$1 [L,R=301]

попробуйте заэкранировать знак вопроса:
CODE:
RewriteRule ^old/forums.php\?forum=([0-9]+)$ http://site/new/viewforum.php?f=$1 [L,R=301]
8. Senc - 31 марта 2011 — 13:12 - перейти к сообщению
Пробовал, не помогает Не понял
Почему-то все, что стоит после
CODE:
old/forums.php
не обрабатывается



Подсказали на серче...
CODE:
RewriteCond %{QUERY_STRING} ^forum=([0-9]+)$
RewriteRule ^old/forums\.php$ http://site/new/viewforum.php?f=%1 [L,R=301]

Может кому пригодится

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0368]     [ ]