У меня есть веб-сайт Apache, и я настроил перенаправление, чтобы он всегда перешел на версию сайта HTTPS. Я добавил это под порта 80 Virtualhost Configuration:
Redirect Permential / https://example.com
Это работает нормально, как я посещаю http://example.com , он перенаправлен на https://example.com .
Но когда я посещаю сайт, как http://example.com/page.php Трейлинг Slash удаляется. Таким образом, вместо перенаправления на https://example.com/page.php Он перенаправлен на https: //example.compage.php (который приведет к ошибке).
Я использую Ubuntu и версию Apache: Apache / 2.4.29 (Ubuntu)
Самым простым способом сделать это через Apache было бы включить mod_rewrite
, а затем перенаправить трафик с ответом 301
.
В конфигурационном файле Apache для сайта добавьте следующее:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
</IfModule>
Если mod_rewrite
не включено, вы можете сделать так:
sudo a2enmod rewrite
sudo service apache2 restart
Это должно дать вам то, что вам нужно