2009-07-02 5 views
0

Мы просто перешли на новый дизайн сайта.redirect 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. что я делаю неправильно?

+0

Вы действительно запрашиваете '/ pixflow /', а не только '/ pixflow'? – Gumbo

+0

да я думаю. оригинальный url был http://www.domain.com/pixflow/ – pixeline

+0

Это работает для меня: http://lab-au.com/pixflow/;) – Gumbo

ответ

1

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

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

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

+0

хороший! делает файл htaccess более легким и читаемым. – pixeline

0

кажется, помещая это в .htaccess (1) работы:

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