корректный редирект всех страниц в .htaccess с domain.ru/forum/.. на forum.domain.ru/

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем E-body, 18 сен 2009.

Статус темы:
Закрыта.
  1. E-body

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    981
    Симпатии:
    319
    Есть форум на forum.domain.ru , но ранее пару лет он был по адресу domain.ru/forum .
    Как с помощью .htaccess можно корректно редиректить с domain.ru/forum/topic.html на forum.domain.ru/topic.html
    Много пользователей сохранили страницы в закладки и с поисковиков приходят - в данный момент Rewriteengine on и в корне html файл с редиректом на глвную форума через тег meta.
    Требуется чтоб незаметно посетителей перенапрвляло на новый (subdomen) адрес с подменой адреса ...
    На данный момент содержимое .htaccess
    Options +ExecCGI
    RewriteEngine On

    RewriteRule ^index.htm index.php?%{QUERY_STRING}
    RewriteRule ^index.html index.php?%{QUERY_STRING}
    RewriteRule ^main.html index.php?act=idx&%{QUERY_STRING}
    RewriteRule ^ipb.html index.php?%{QUERY_STRING}
    RewriteRule ^topic([0-9]+)\.html$ index.php?showtopic=$1&%{QUERY_STRING}
    RewriteRule ^topic([0-9]+)s([0-9]+)\.html$ index.php?showtopic=$1&st=$2&%{QUERY_STRING}
    RewriteRule ^topic([0-9]+)\.html&st=([0-9]+)$ index.php?showtopic=$1&st=$2&%{QUERY_STRING}
    RewriteRule ^forum([0-9]+)\.html$ index.php?showforum=$1&%{QUERY_STRING}
    RewriteRule ^cat([0-9]+)\.html$ index.php?act=SC&c=$1&%{QUERY_STRING}
    RewriteRule ^ptopic([0-9]+)\.html$ index.php?act=Print&client=printer&f=1&t=$1&%{QUERY_STRING}
    RewriteRule ^user([0-9]+)\.html$ index.php?showuser=$1&%{QUERY_STRING}
    Нашёл на одном иностранном блоге чтото
    1. вариант
    2. вариант
    3. вариант
    какой из них предпчтительней?

    пробую вариант такой
    Options -Indexes +FollowSymLinks
    RewriteEngine On
    RewriteBase /forum/
    RewriteCond %{HTTP_HOST} ^domain.ru/forum/ [NC]
    RewriteRule ^(.*)$ http://www.domain.ru$1 [L,R=301]
    RedirectMatch 301 ^/forum/(.*)$ http://forum.domain.ru/$1

    RewriteRule ^index.htm index.php?%{QUERY_STRING}
    RewriteRule ^index.html index.php?%{QUERY_STRING}
    RewriteRule ^main.html index.php?act=idx&%{QUERY_STRING}
    RewriteRule ^ipb.html index.php?%{QUERY_STRING}
    RewriteRule ^topic([0-9]+)\.html$ index.php?showtopic=$1&%{QUERY_STRING}
    RewriteRule ^topic([0-9]+)s([0-9]+)\.html$ index.php?showtopic=$1&st=$2&%{QUERY_STRING}
    RewriteRule ^topic([0-9]+)\.html&st=([0-9]+)$ index.php?showtopic=$1&st=$2&%{QUERY_STRING}
    RewriteRule ^forum([0-9]+)\.html$ index.php?showforum=$1&%{QUERY_STRING}
    RewriteRule ^cat([0-9]+)\.html$ index.php?act=SC&c=$1&%{QUERY_STRING}
    RewriteRule ^ptopic([0-9]+)\.html$ index.php?act=Print&client=printer&f=1&t=$1&%{QUERY_STRING}
    RewriteRule ^user([0-9]+)\.html$ index.php?showuser=$1&%{QUERY_STRING}
    переводит на субдомен всех но при этом адрес
    вместо _http://forum.domain.ru/topic552.html
    показывает _http://forum.domain.ru/topic552.html?showtopic=552 (это только после перехода с старого адрес)
    как излишки убрать ?
    -
    Разобрался сам, вариант рабочий - трафик пошел!!!
    п.с. много кому пригодиться эта полезная статья. (сам спросил и сам ответил - тему закройте пожалста)
     
Статус темы:
Закрыта.