перенаправить 301 вопрос

Мы только что перешли на наш новый дизайн сайта.

У нас есть копия предыдущего в папке «v1», а новый — в «v2». Я играю с двумя файлами .htaccess. Файл организован следующим образом:

root
 L .htaccess (1)
 L v1
 L v2
    L .htaccess (2)

.htaccess 1 делает 2 вещи:

  • удалить www из URI
  • перенаправляет все запросы на v2/

Правила таковы:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !^/v2/ [NC]
RewriteRule ^(.*)$ /v2/$1 [NC,L]

Теперь у меня есть определенные URL-адреса, которые хорошо индексируются. Например: example.com/pixflow/

Я хотел бы 301 перенаправить его на example.com/projects/pixflow1/ (что физически означает example.com/v2/projects/pixflow1/)

Для этого я добавил .htaccess 1:

RewriteRule ^pixflow/$ http://%{HTTP_HOST}/projects/pixflow1/ [L,R=301]

Но это не работает, возвращает 404. Что я делаю не так?


person pixeline    schedule 02.07.2009    source источник
comment
Вы действительно запрашиваете /pixflow/, а не только /pixflow?   -  person Gumbo    schedule 02.07.2009
comment
Да, я думаю. исходный URL был domain.com/pixflow   -  person pixeline    schedule 02.07.2009
comment
У меня работает: lab-au.com/pixflow ;)   -  person Gumbo    schedule 02.07.2009
comment
да ладно, вот вам и плащ domain.com :)   -  person pixeline    schedule 02.07.2009
comment
Лучше использовать example.com для примера доменных имен.   -  person Gumbo    schedule 02.07.2009


Ответы (2)


Вы можете просто указать абсолютный URL-адрес для замены:

RewriteRule ^pixflow/$ /projects/pixflow1/ [L,R=301]

Но ваш тоже должен работать.

person Gumbo    schedule 02.07.2009
comment
превосходно! делает файл htaccess более легким и читабельным. - person pixeline; 02.07.2009

кажется, что это работает в .htaccess(1):

RewriteRule ^pixflow/$ http://domain.com/projects/pixflow1/ [L,R=301]
person pixeline    schedule 02.07.2009