网址http向https以及主域名向www子域名的跳转配置

共发表 5 篇文章
https已经大面积铺开,我也为本网站安装了SSL证书,所以需要将本站的所有url都转到https下访问以实现全站https,并且将主域名的url转到www子域名中访问,毕竟按国内的习惯,都是把www子域名当成主域名和顶级域名来访问的,如:
http://daijulong.com/index.html 跳转到 https://www.daijulong.com/index.html
目前服务器软件使用Apache,在.htaccess文件中增加设置:
#开启Rewrite
RewriteEngine On
#将主域名跳转至www子域名,这里因为有https跳转的需求,故直接跳转到https的url
RewriteCond %{HTTP_HOST} !^www.daijulong.com [NC]
RewriteRule ^(.*)$ https://www.daijulong.com/$1 [L,R=301]
#将非443端口的url请求转发至https
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301]
需要注意两处指定301状态,如不明确指定,则默认为302的暂时性转移,不利于SEO,虽然对普通用户没有影响,但从整站运营来看,还是有必要指定为301来集中页面权重的。
附:本站当前的.htaccess文件内容(后端使用Laravel框架开发),仅供参考
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.daijulong.com [NC]
RewriteRule ^(.*)$ https://www.daijulong.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
虚拟主机不支持SSL证书,要怎么弄呢,你是自己建的服务器吗?
如果是虚拟主机本身不支持的话,确实没什么办法。我这是独立的云主机,可以自己完全配置的。如果确实想用HTTPS的话,可以考虑换支持的虚拟主机或独立云主机。
谢谢,只是云主机价格也挺贵的,对于小白来说还是有点贵了
你可以关注下阿里云,有学生优惠(9.9元/月)和全民云计算活动(30元/月,800元三年),这个价格其实也比较接近虚拟主机了,不妨考虑下