.htaccess — перенаправление на https и добавление косой черты в конце за одно перенаправление
спросил
Изменено 1 год, 3 месяца назад
Просмотрено 511 раз
Я хочу перенаправить на https и добавить косую черту в конце одного перенаправления.
Это мой текущий .htaccess: 9/])$ https://www.test.ru/$1/ [L,R=301]
Когда я открываю поддельный URL, я получаю два перенаправления
http://www.test.ru/documents/test 301 Перемещено навсегда https://www.test.ru/documents/test 301 Перемещено навсегда https://www.test.ru/documents/test/
Есть ли способ объединить это в одно перенаправление?
http://www.test.ru/documents/test 301 Перемещено навсегда https://www.test.ru/documents/test/
Это также может быть связано
RedirectMatch 301 ^/fitness/$ /services/fitness/ RewriteRule ^fitness/$ services/fitness/ [R=301,L]
Что не так на этом сервере? Такое ощущение, что правила выполняются одно за другим по очереди.
- .htaccess
- mod-rewrite
Когда вы используете флаг [L]
с флагом перенаправления [R=301]
, Apache немедленно перенаправляет, игнорируя другие правила. Два обратных перенаправления ожидаются с вашим текущим правилом.
Два правила можно комбинировать с помощью флага [ИЛИ]
. Я не упомянул X-Forwarded-Proto 9.(.*)/?$
. Это всегда так. Последняя косая черта необязательна из-за ?
после него, а группа захвата просто захватывает все до него.
Затем проверяем выключен ли https. Если это так, мы выполняем правило и перенаправляем. Если мы уже на https, проверяем второе условие и проверяем, не заканчивается ли url косой чертой. Если это условие истинно, мы также выполняем правило.
Само правило гарантирует соответствие всему URL-адресу до косой черты. Таким образом, мы всегда можем добавить косую черту в конце, не получая при этом несколько косых черт. Протокол и хост не являются переменными, поэтому мы просто жестко запрограммировали их здесь.
3
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Как исправить внутренние перенаправления из-за несоответствия косой черты?
Внутреннее перенаправление — это процесс, при котором один URL-адрес перенаправляется на другой внутренне. Более того, браузеры и пользователи не видят этих изменений.
Что означает «Несоответствие косой черты в конце URL»?
Эта проблема означает, что один URL-адрес вашего сайта перенаправляется на другой внутренний URL-адрес. Единственное различие между ними — наличие/отсутствие косой черты.
Вы также можете узнать все подробности об URL-адресах перенаправления:
https://developers.google.com/search/docs/advanced/crawling/301-redirects
Что вызывает эту проблему?
Вы должны знать, что эта проблема связана с настройкой вашего сервера, где могут возникнуть две противоположные ситуации:
- Сервер ожидает увидеть URL с косой чертой в конце. И когда он сталкивается с URL-адресом без него, сервер перенаправляет на URL-адрес с косой чертой в конце .
- Или сервер ожидает найти URL-адрес без косой черты в конце, поэтому перенаправляет URL-адрес без косой черты
Как проверить проблему?
Вы можете проверить эту проблему с помощью сетевых или автономных инструментов, которые сканируют ваш сайт. Они могут идентифицировать внутренние URL-адреса, которые возвращают коды состояния HTTP 3XX, где:
- URL-адреса с перенаправлением добавляют косую черту к URL-адресам без этих меток
- Или перенаправленные URL-адреса удаляют завершающие косые черты для URL-адресов с этими метками
Внутренних перенаправлений от анализа несоответствия косой черты недостаточно для оптимизации вашего сайта для поисковых систем!
Проведите полный аудит, чтобы выяснить и исправить ваше техническое SEO, чтобы улучшить результаты поисковой выдачи.
Почему это важно?
Внутренние перенаправления ухудшают работу сканеров поисковых систем и пользователей, поскольку они добавляют дополнительные «прыжки», которые увеличивают продолжительность загрузки контента на страницах.