请教林大重定向规则问题
By
qq99859874
at 2016-02-26 • 0人收藏 • 2546人看过
@lincanbin 想请教林大,您的程序中有现成的Apache的301规则,请问要如何实现像您站点一样将顶级域名301到www的二级域名上并且PC端手机端和API域名都强制由HTTP跳转HTTPS(已经部署了SSL证书并且可以正常HTTPS访问),我是Nginx1.9.11最新版本尝试HTTP2
6 个回复 | 最后更新于 2016-02-26
回复#1 @qq99859874 :
.htaccess里预置了一段规则吧,被我注释掉了。
就是从不带www跳到带www的。
不过是Apache用的,Nginx照着翻译成Nginx的rewrite规则就是了。
#强制重定向从不带www到带www的域名
RewriteCond %{HTTP_HOST} ^94cb.com$ [NC]
RewriteRule ^(.*)$ https://www.94cb.com/$1 [L,R=301]
#For SSL
RewriteCond %{HTTP_HOST} ^94cb.com$ [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.94cb.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^m.94cb.com$ [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://m.94cb.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^api.94cb.com$ [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://api.94cb.com/$1 [L,R=301]
2016-02-26
#5
if ($http_host ~* "^94cb.com$"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/(.*)$ https://www.94cb.com/$1 permanent;
}感谢林大,已通过在线转换工具解决
登录后方可回帖

粤公网安备 44030602003677号
server { listen 80; server_name domain.com m.domain.com api.domain.com ; #rewrite ^ https://$server_name$request_uri? permanent; rewrite ^(.*)$ https://$host$1 permanent; } server { #listen 80; listen 443 ssl http2; #listen [::]:80; ssl on; ssl_certificate /root/https.crt; ssl_certificate_key /root/https.key; server_name domain.com www.domain.com m.domain.com api.domain.com; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/domain.com;如此已经解决了所有http连接跳转到https,但是不知如何在这个基础上将顶级域名跳转到www,尝试抄了if,结果发现m和api的二级域名都跳转到了www,求指导