请教林大重定向规则问题

By qq99859874 at 2016-02-26 • 0人收藏 • 322人看过

@lincanbin 想请教林大,您的程序中有现成的Apache的301规则,请问要如何实现像您站点一样将顶级域名301到www的二级域名上并且PC端手机端和API域名都强制由HTTP跳转HTTPS(已经部署了SSL证书并且可以正常HTTPS访问),我是Nginx1.9.11最新版本尝试HTTP2

6 个回复 | 最后更新于 2016-02-26
2016-02-26   #1
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,求指导

2016-02-26   #2

回复#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   #3

回复#2 @lincanbin :

百度了下不知如何翻译了,求林大指点

2016-02-26   #4

回复#3 @qq99859874 :

自己多看看就是了,写出来有问题再问我。

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;
}

感谢林大,已通过在线转换工具解决

2016-02-26   #6

回复#4 @lincanbin :

已解决咯,谢谢

登录后方可回帖

登 录
信息栏
购买PHP虚拟主机 / VPS

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.0.1
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

Loading...