apache — В чем разница между [R = 301] и [R = 301, L]?
спросил
Изменено 4 года, 1 месяц назад
Просмотрено 37 тысяч раз
Кто-нибудь может поделиться со мной разницей между [R=301]
и [R=301,L]
в переадресации 301? Что лучше всего подходит для перенаправления URL-адресов?
Хотя оба работают отлично, я заметил, что [R=301,L]
изменяет URL-адрес на новый URL-адрес, а [R=301]
только перенаправляет содержимое.
Кто-нибудь может поделиться информацией об этом, пожалуйста?
- apache
- .htaccess
Независимо от R=301
там L
флаг означает Last
и должен быть размещен в правилах, когда вы хотите отметить конец определенного правила перезаписи.
Согласно официальный документ:
Флаг [L] заставляет mod_rewrite прекратить обработку набора правил. В В большинстве контекстов это означает, что если правило совпадает, дальнейшие правила не применяются. будет обработан. Это соответствует последней команде в Perl или команда break в C. Используйте этот флаг, чтобы указать, что текущая Правило следует применять немедленно, не рассматривая другие правила.
2
R
делает редирект и L
запрещает применять любые правила ниже этого. Если нет L
, то остальные правила будут применяться к новому URL.
Официальная документация гласит:
Вы почти всегда будете использовать [R] в сочетании с [L] (то есть использовать [R,L]), потому что сам по себе флаг [R] добавляет http://thishost[:thisport] к URI, но затем передает его следующему правилу в наборе правил, что часто может приводить к появлению предупреждений «Недопустимый URI в запросе».
Основное различие между флагами [L] и [R=301,L] заключается в том, что флаг R вызывает явное внешнее перенаправление HTTP (есть одно исключение), в то время как без флага R правило также может вызывать только неявное внутреннее перенаправление , в зависимости от фактического правила и запроса.
Необязательный код состояния просто указывает тип ответа перенаправления. 301 обозначает постоянный редирект:
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
apache — перенаправление 301 не работает для домашней страницы, возможно, проблема с правилом перезаписи?
Я установил 301 редиректы для всех страниц один за другим, так как домен и структура сайта разные.
Используя шаблон: 301 перенаправление /страница https://newdomain.com/new-page
Но у меня есть некоторые проблемы с перенаправлением домашней страницы, добавление
301 перенаправление / https://newdomain.com
работает для домашней страницы, но удаляет косую черту между .com и остальными URL-адресами, поэтому часть моих перенаправлений заканчивается чем-то вроде https://newdomain.comnewpage . Проблема присутствует только для страниц в корневом каталоге, подкаталоги работают как положено.Я предполагаю, что проблема может заключаться в существующих правилах перезаписи со старого сайта .htaccess.
Их два (старый сайт — Laravel), один в www и один в публичном подкаталоге. 9/index.php [Л] # Обработка заголовка авторизации RewriteCond %{HTTP:Авторизация} . RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Авторизация}]
- апач
- .htaccess
- перенаправление
5
добавление переадресации
301 / https://newdomain.