在 Apache 中从 http 重定向到 https

Aug*_*tin 5 .htaccess apache-2.2

这是一个关于在 Apache 中从 http 重定向到 https的规范问题

有关的:

我有符合两国的Appache Web服务器http://example.com/https://example.com/。我想将所有 http 请求重定向到 https。目前我正在使用此.htaccess规则将 http 请求重定向到 https。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
Run Code Online (Sandbox Code Playgroud)

它按预期工作,example.com但相同的规则不适用于子链接,当我访问现有链接时,就像example.com/about它仍然会加载到 http 一样,现有链接不会发生重定向。

如何让 Apache 将所有 http 请求重定向到 https?

Vin*_*rão 10

您应该配置 Apache Virtualhosts 来完成这项工作。RewriteMod 不是这种情况的合适解决方案,.htaccess也不是。

在您的 httpd.conf 或等效文件中,根据您的需要使用以下行。将其编辑为您的域和站点。

<VirtualHost *:80>
   ServerName www.example.com example.com
   Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost _default_:443>
   ServerName example.com
   DocumentRoot /usr/local/www/apache2/htdocs
   SSLEngine On

   ** Additional configurations here **

</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

希望这可以澄清程序。

  • 如果您使用的是共享主机,则此站点可能不适合您。 (3认同)