Вопрос

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

У нас есть копия предыдущей в папке "v1", а новая находится в папке "v2".Я играю с файлами 2 .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.Что я делаю не так?

Это было полезно?

Решение

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

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

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

Другие советы

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

RewriteRule ^pixflow/$ http://domain.com/projects/pixflow1/ [L,R=301]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top