Apache http 自动跳转到 HTTPS

9 年 ago jony Apache http 自动跳转到 HTTPS已关闭评论

网站根目录新建 .htaccess

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

站点绑定多个域名,只允许www.example.com 跳转

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

###把网址更改为自己的###

高级用法 (可选)

RewriteEngine on
 
# 强制HTTPS
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{SERVER_PORT} 80
# 某些页面强制
RewriteCond %{REQUEST_URI} ^something_secure [OR]
RewriteCond %{REQUEST_URI} ^something_else_secure
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
# 强制HTTP
RewriteCond %{HTTPS} =on [OR]
RewriteCond %{SERVER_PORT} 443
# 某些页面强制
RewriteCond %{REQUEST_URI} ^something_public [OR]
RewriteCond %{REQUEST_URI} ^something_else_public
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

如果上面的还不行,就找到虚拟主机配置文件:

修改/etc/httpd/conf/httpd.conf

<VirtualHost *:80>
DocumentRoot "/home/test"
ServerName www.test.net
ServerAlias test.net
<Directory "/home/test">
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
allow from all
Options   FollowSymLinks
</Directory>
</VirtualHost>

这样所有的页面都会跳到相应的页面

https://www.getssl.cn/support/apache%E8%87%AA%E5%8A%A8%E8%B7%B3%E8%BD%AC%E5%88%B0-https/

https://blog.csdn.net/daily886/article/details/79449202