貌似我这是第三位说这个问题的人了。
具体是这样的:
配置:PHP 7.0系列,Nginx,Apache2.4,lnmpa模式。
我的网站是php的,用那苹果手机的Safari浏览器无法访问网站,苹果手机第三方浏览器,比如QQ浏览器正常。
仔细看了下,Safari不能访问的问题,好像出在Apache那边,因为静态文件可以访问。
比如我有个example.com/about.html,已写伪静态:
RewriteRule ^about$ about.html [L,QSA]
在Safari上访问example.com/about无响应,访问example.com/about.html就OK。
带SSL证书和不带的均一样。
带SSL的机器地址:example.com
不带SSL的机器地址:mc.example.com(首页是个静态文件)
配置文件均是OneinStack默认生成。
请求支援。
sed -i 's@Protocols h2 http/1.1@#Protocols h2 http/1.1@' /usr/local/apache/conf/httpd.conf
service httpd restart
@oneinstack 另外,Nginx的http跳转到https的配置,有些问题:
server_name只配置一个域名时,用
return 301 https://$server_name$request_uri;
是正常的。
但是server_name填写多个域名时,总是301到第一个域名而不是匹配到你输入的域名。
比如:
server_name 1.example.com 2.example.com;
return 301 https://$server_name$request_uri;
当你输入2.example.com(http)时,跳转到https的总是1.example.com,在程序加了手机UA判断时,手机访问1.example.com会跳转到手机版2.example.com(http),此时需要Nginx跳转到2.example.com(https),然而Nginx又跳转回到1.example.com,程序又继续跳转...
这样导致了无限循环。
修改为下面参数即正常了。
return 301 https://$host$request_uri;
Please login or Register to submit your answer