Apache通过设置.htaccess文件强制全站HTTP跳转至HTTPS访问
Apache通过设置.htaccess文件强制全站HTTP跳转至HTTPS访问启用apache服务器模块“mod_rewrite.so” (一般是修改/etc/apache2/httpd.conf)
寻找/etc/apache2/httpd.conf里面涉及到项目目录、以及往上的目录的设置,修改其AllowOverride None为AllowOverride all,假设你的项目目录为/var/www/project, 那么请修改以下虚拟目录的设置包括:<Directory /> 和 <Directory /var> 和 <Directory /var/www>
重启apache: sudo apachectl restart
在项目根目录下添加文件“.htaccess”(只有点号+后缀),写入以下内容即可:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
我们可以用Apache的.htaccess的重定向规则来实现http强制跳转到https访问网站。( 重要提示:必须将代码放到.htaccess文件内容的最前面,以保证重定向优先权。)
代码如下:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yizuotu.net/$1 [R,L]
或者
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yizuotu.com/$1 [R=301,L]
又或者
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
注意:如果是在子目录,可以用
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} subfolder
RewriteRule ^(.*)$ https://zzzyk.com/subfolder [R,L]
将以上代码复制到.htaccess中即可 Apache使用 .htaccess 来实现强制https访问的方法