Помогите с редиректом

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Alexandr3, 1 апр 2011.

  1. Alexandr3

    Alexandr3

    Заблокирован
    Регистр.:
    22 апр 2008
    Сообщения:
    429
    Симпатии:
    96
    Есть .htaccess
    PHP:
    RewriteEngine on
    RewriteBase 
    /
    RewriteCond %{HTTP_HOST} ^www.seit
    RewriteRule 
    (.*) http://seit/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    ^(.*)$ index.php
    Ссылки открываются вида seit/ru/glavnaya/news,
    надо 301 редирект c seit/ru на seit/
    надо 301 редирект c seit/ru/glavnaya/ на seit/
    А ссылки seit/news
     
  2. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Если я правильно понял, то так:
    Код:
    RewriteEngine on 
    RewriteBase / 
    RewriteRule ^/ru$ / [R=301,L]
    RewriteRule ^ru/glavnaya/$ / [R=301,L]
    RewriteCond %{HTTP_HOST} ^www.seit 
    RewriteRule (.*) http://seit/$1 [R=301,L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php 
    
    А с этим что делать?
     
  3. Alexandr3

    Alexandr3

    Заблокирован
    Регистр.:
    22 апр 2008
    Сообщения:
    429
    Симпатии:
    96
    Ссылки которые были seit/ru/glavnaya/news надо перевести
    seit/news
     
  4. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Тогда будет так:
    Код:
    RewriteEngine on 
    RewriteBase / 
    RewriteRule ^/ru$ / [R=301,L]
    RewriteRule ^ru/glavnaya/$ / [R=301,L]
    RewriteRule ^ru/glavnaya/news(.*) /news$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^www.seit 
    RewriteRule (.*) http://seit/$1 [R=301,L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php 
    
    Но
    Код:
    RewriteRule ^ru/glavnaya/news(.*) /news$1 [R=301,L]
    
    Будет редиректить с seit/ru/glavnaya/newsчтоугодно на seit/newsчтоугодно. Если там формат типа ru/glavnaya/news/1343 или что-то подобное, лучше поставить:
    Код:
    RewriteRule ^ru/glavnaya/news/(.*) /news/$1 [R=301,L]
    
     
  5. Alexandr3

    Alexandr3

    Заблокирован
    Регистр.:
    22 апр 2008
    Сообщения:
    429
    Симпатии:
    96
    Спасибо все вышло кроме ссылки seit/ru/, ее не хочет в упор директить на /
     
  6. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    RewriteEngine on 
    RewriteBase / 
    RewriteRule ^/ru/?$ / [R=301,L]
    RewriteRule ^ru/glavnaya/?$ / [R=301,L]
    RewriteRule ^ru/glavnaya/news(.*) /news$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^www.seit 
    RewriteRule (.*) http://seit/$1 [R=301,L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php
    
    Теперь должны работать варианты со слешем и без.