301 htaccess: Как сделать 301-редирект в htaccess, как настроить правильный 301 редирект для сайта

Содержание

append — 301 Redirect в .htaccess добавляет старый путь/имя файла к новому URL-адресу

Задавать вопрос

спросил

Изменено 4 года, 4 месяца назад

Просмотрено 1к раз

У меня есть два URL-адреса: old-site.com и new-site.com. В моей корневой папке на old-site.com НЕТ ФАЙЛОВ, а только файл .htaccess. Я больше не хочу использовать старый домен. Однако я хочу передать ссылочный вес новому домену. Поэтому я создал 301 редиректы в файле .htaccess и поместил его в корневую папку на old-site.com.

Почему перенаправление 301 добавляет «old-site.com/…» к new-site.com?

Весь мой .htaccess выглядит так (я пропустил несколько ссылок, чтобы сократить его):

 #Begin 301 Redirects
Редирект 301 / https://www. new-site.com/
Редирект 301 /контакт https://www.new-site/contact-us/
Редирект 301 /аренда https://www.new-site/lodging/
Редирект 301 /lift.html https://www.new-site/our-rentals/boat/
Редирект 301 /rentals.html https://www.new-site/our-rentals/
Перенаправление 301 /map.html https://www.new-site/contact-us/
Редирект 301 /магазин подарков https://www.new-site/store/gift-shop/
#Конец переадресации 301
 

У меня нет перезаписи. Выше приведен весь мой код.

Следующее перенаправление работает нормально:

 Перенаправление 301 / https://www.new-site.com/
 

Однако любое другое перенаправление создает следующий абсолютный путь на сайте new-site.com с ошибкой 404:

Если я перенаправляю:

 Перенаправление 301 /contactus https://www.new-site/contact-us/
 

Он идет по адресу:

https://www.new-site.com/old-site.com/contactus
 

или

Если я перенаправляю:

 Редирект 301 /lift.html https://www.new-site/lift/
 

Он идет по адресу:

https://www. new-site.com/old-site.com/lift.html
 

Почему перенаправление 301 добавляет «old-site.com/…» к new-site.com?

Спасибо. 3 absolute-path

Ваши правила не будут делать то, что вам нужно, из-за этой строки Redirect 301 / https://www.new-site.com/ , который сначала будет соответствовать любому запросу, и если вы поместите его последним, он также будет соответствовать любому запросу, поэтому, если вы хотите, чтобы он соответствовал только root, используйте RedirectMatch , чтобы иметь возможность использовать регулярное выражение следующим образом:

 RedirectMatch 301 /?$ https://www.new-site.com /
 

При этом остальные правила будут работать как положено.

Примечание: очистить кеш браузера тест

1

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.

Как реализовать перенаправление 301 в файлах Apache .htaccess

Перенаправление страниц или сайтов на веб-сервере Apache очень просто и является хорошим способом обеспечения SEO. Вы делаете это, изменяя файл на своем веб-сайте, называемый файлом .htaccess (обратите внимание, что фактическое имя файла начинается с точки). Файл .htaccess — это управляющий файл, который позволяет изменять конфигурацию сервера для каждого каталога.

Файл управляет этим каталогом и всеми содержащимися в нем подкаталогами. Обычно этот файл находится в корневой папке вашего сайта. Когда вы редактируете файлы Apache, очень важно, чтобы ваш редактор сохранял файл в формате UNIX; в противном случае могут возникнуть ошибки.

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

Будьте осторожны здесь. Некоторые программы загрузки (FTP) скрывают файл .htaccess. Вы не хотите перезаписывать существующий .htaccess своим обновлением.

Вот пример файла .htaccess для сайта, который переходит с ASP на PHP и перенаправляет версию без www на версию с www (обратите внимание, что там, где написано mydomain 9(.*) http://www.мой_домен.com/$1 [R=301,L] RedirectMatch 301 (.*).asp$ http://www.mydomain.com$1.php # КОНЕЦ

Обратите внимание, что предыдущий пример перенаправляет все, кроме www.mydomain.com. Другими словами, он также перенаправляет поддомены, такие как subdomain.mydomain.com и test.mydomain.com. Это может создать путаницу, если вы используете поддомены для тестовых сред или для других целей.

Прежде чем начать, убедитесь, что у вас есть доступ к файлу .htaccess. Если у вас есть доступ к вашему серверу, чтобы вы могли загружать и изменять файлы, у вас не должно возникнуть проблем. (На сервере Apache изменение файла .

htaccess не требует прав доступа на уровне администратора.) Если вы не можете получить доступ к файлам в своих веб-папках, позвоните своему хостинг-провайдеру и запросите эту возможность (или обратитесь к человеку, который может получить доступ к этим файлам для вас).

Чтобы отредактировать файл .htaccess для перенаправления страниц на вашем веб-сайте, вы должны сначала узнать URL-адреса каждой веб-страницы/сайта, которые вы хотите перенаправить, и URL-адреса новой страницы/сайта, на которые они будут перенаправлены. Затем выполните следующие действия:

  1. Войдите на свой веб-сайт и в корневой веб-папке найдите файл с именем .htaccess.

    Если файла .htaccess нет, его необходимо создать. Опять же, будьте осторожны, чтобы на самом деле не было .htaccess и чтобы вы не перезаписывали его.

    .htaccess — это скрытый файл, поэтому вам нужно разрешить программе FTP просматривать скрытые файлы, чтобы иметь возможность его увидеть.

  2. Откройте файл . htaccess с помощью текстового редактора с окончаниями строк в стиле UNIX, например Notepad++.

    Редактор кода, такой как Adobe Dreamweaver, также отлично обрабатывает файл .htaccess, поскольку он открывает файл как текст, но с этой задачей может справиться и простой текстовый редактор.

  3. При необходимости отредактируйте файл, соблюдая точный синтаксис.

Чтобы добавить перенаправление 301 на определенную страницу в Apache

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

[корневая часть URL-адреса вашего сайта] при использовании приведенных здесь примеров.)

 RedirectPermanent /старый-файл.html http://www.mydomain.com/new-file.html 

или

 Перенаправление 301 /старый-файл.html http://www. mydomain.com/new-file.html 

На 301 Перенаправление всего домена в Apache

Чтобы перенаправить весь домен, вы добавляете строку в файл .htaccess, которая дает серверу ваши инструкции. Перенаправление с одного домена на другой будет записано так:

 RedirectPermanent / http://www.new-domain.com/ 

Чтобы разбить их, каждая команда 301 Redirect состоит из трех частей:

  • Первая часть сообщает серверу, что делать, и вы можете ввести это двумя способами: либо RedirectPermanent , либо Redirect 301.

  • Вторая часть показывает относительный путь

    старого файла (его расположение файла по отношению к текущему каталогу, в котором находится файл .htaccess). Если ваш файл .htaccess находится в корневом веб-каталоге, вы можете использовать URL-адрес файла без имени домена, например / old-file. HTML.

  • Третий раздел — это полный путь к новому файлу. Начиная с http://, вы хотите включить полный URL-адрес (например, http://www. mydomain.com/new-file. html).

После того, как вы вставите команды 301 Redirect для перенаправления ваших страниц, вам нужно поместить пустую строку в конец файла. Ваш сервер читает файл .htaccess построчно, поэтому вам нужно в какой-то момент включить символ перевода строки (возврат каретки), чтобы сообщить серверу, что вы закончили.

Об этой статье

Эта статья из книги:

  • Search Engine Optimization All-in-One For Dummies,

Об авторах книги:

Брюс Клэй считается многими стать отцом поисковой оптимизации или SEO. Он имеет более чем 25-летний опыт работы с компаниями по улучшению их присутствия в Интернете и результатов поиска, а также увеличению их аудитории.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *