Необходимо перенаправить недостающие URL на новый хост - PullRequest
0 голосов
/ 24 апреля 2020

Я перемещаю блог с одного сайта на другой и переназначаю оригинальный сайт. Я хочу сохранить все существующие ссылки, которые указывают на сайт, и, надеюсь, поддерживать рейтинг страниц SEO.

Старый URL: http://www.companyabc.com/2010/04/test.html

Новый URL: http://blog.companyabc.com/2010/04/test.html

Я бы хотел использовать пользовательскую страницу с ошибкой 404 для www.companyabc.com, например:

<html><meta http-equiv="REFRESH" content="0;url=http://blog.companyabc.com/%1"></html>

, где % 1 является исходным URI (/2010/04/test.html), но я не знаю, возможно ли это.

Другой вариант - использовать файл .htaccess, который перенаправляет, если URL-адрес не найден, но я не получил это работать тоже. Я уверен, что я делаю что-то не так в состоянии перезаписи:

RewriteEngine On
RewriteCond %{REQUEST_URI} !-l
RewriteRule ^(.*)\.html$ https://blog.companyabc.com/$1.html [R=301,L]

Есть предложения? Спасибо за помощь.

1 Ответ

0 голосов
/ 24 апреля 2020

Я заработал, используя следующую конфигурацию .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://blog.companyabc.com/$1 [R=301,L]

Я никогда не пробовал значение REQUEST_FILENAME, потому что я ошибочно думал, что оно применяется только к файлам, которые можно загрузить с веб-сайта. Я не осознавал, что это также относится к файлам. html в блоге.

С этим решением все URL, которые не существуют на www.companyabc.com, будут перенаправлены на blog.companyab c. com вместо отображения страницы с ошибкой 404, что я и ищу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...