苹果手机Safari浏览器无法访问PHP程序页面

问答中心分类: OneinStack苹果手机Safari浏览器无法访问PHP程序页面
后宫学长 asked 5年 ago

貌似我这是第三位说这个问题的人了。
具体是这样的:
配置: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默认生成。
请求支援。

10 Answers
oneinstack answered 5年 ago
方便的话,私信ip 密码。

后宫学长 answered 5年 ago
 @oneinstack 请问怎么联系您呢?说实话你站点要回复真的麻烦....

oneinstack answered 5年 ago
回复私人的

alphazld answered 5年 ago
解决没有啊。我也很着急这个问题呢。

oneinstack answered 5年 ago
@后宫学长 服务器无法登陆。

后宫学长 answered 5年 ago
@alphazld 正在排查中。

oneinstack answered 5年 ago
问题已经修复,之后安装lnmpa不会有这个问题。如果2017-04-27 17点之前安装,请执行下面命令修复:

sed -i 's@Protocols h2 http/1.1@#Protocols h2 http/1.1@' /usr/local/apache/conf/httpd.conf
service httpd restart

后宫学长 answered 5年 ago
@oneinstack 感谢dalao这么快解决问题了。

后宫学长 answered 5年 ago

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

oneinstack answered 5年 ago
已修正!谢谢!