Apache redirect HTTP на HTTPS Redirect или Rewrite?

Я нашел два способа перенаправить http на https с apache. Использование перенаправления

Redirect / https://mydomain/

или перезаписи

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://mydomain/$1 [R,L]

В чем различия?

0
задан 13 March 2021 в 11:29
2 ответа

Официальная документация по Когда не использовать mod_rewrite , перечисляет Простое перенаправление , а также указывает ваш HTTP на HTTPS как пример:

mod_alias предоставляет директивы Redirect и RedirectMatch , которые предоставляют средства для перенаправления одного URL-адреса на другой. Такое простое перенаправление одного URL-адреса или класса URL-адресов в другое место должно выполняться с использованием этих директив, а не RewriteRule . RedirectMatch позволяет включать регулярное выражение в критерии перенаправления , обеспечивая многие из преимуществ использования RewriteRule .

Обычно RewriteRule используется для перенаправления всего класса URL-адресов. Например, все URL-адреса в каталоге / one должны быть перенаправлены на {{ 1}} http://one.example.com/ или , возможно, все HTTP-запросы должны быть перенаправлены на https.

Эти ситуации лучше обрабатываются директивой Redirect .

Ваш пример RewriteRule может оказаться необходимым взломом, если у вас есть доступ только к одному разделу конфигурации, который обрабатывает как HTTP, так и HTTPS. Это обычное дело, когда задействованы файлы .htaccess , например на виртуальном хостинге. Это другая история; Когда (не) использовать файлы .htaccess .

2
ответ дан 24 April 2021 в 01:27

Они делают то же самое. Redirect проще, легче читать и не требует mod_rewrite, поэтому лучше использовать его, если вам не нужно что-то, чего он не может сделать.

1
ответ дан 24 April 2021 в 01:27

Теги

Похожие вопросы