Facebook共享链接无法在FB iOS App应用内浏览器中打开

时间:2016-03-10 01:56:03

标签: ios facebook apache hyperlink

我们在运行Apache的Ubuntu 14服务器中部署了一个网站。该网站使用SSL证书(因此您可以通过https访问)并在没有https的情况下对所有传入请求进行重定向。

好的,所以网站在桌面浏览器和移动浏览器中按预期工作,但是,当用户点击链接(来自Facebook iOS应用程序)时,应用内浏览器会尝试打开网站并返回像“链接不起作用,再试一次”这样的消息(不是英文中的确切消息)。

经过大量的研究后,我仍然不清楚这会发生什么(只是在google上发现了几个未解决的案例),所以我首先看看服务器配置。

apache配置(IP和域是样本):

<VirtualHost 200.200.200.200:80>
    ServerName www.domain.com
    Redirect permanent / https://www.domain.com/
</VirtualHost>

<VirtualHost domain.com:80>
    ServerName www.domain.com
    Redirect permanent / https://www.domain.com/
</VirtualHost>

<VirtualHost www.domain.com:443>
    ServerName www.domain.com
    ServerAlias domain.com

    SSLEngine on
    SSLCertificateFile /home/ssl/www.domain.com.crt
    SSLCertificateKeyFile /home/ssl/domain.com.key

    ServerAdmin admin@domain.com
    DocumentRoot /var/www/html
    <Directory /var/www/html>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

.htaccess文件:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

之前的配置在所有浏览器中都能正常运行,加载Facebook iOS应用内浏览器时,它只是不加载(甚至不会加载到Apache访问日志)。

非常感谢帮助!提前感谢您的时间。

1 个答案:

答案 0 :(得分:2)

在使用@CBoroe建议的SSL Checker分析网址后,我发现需要添加缺少的中间证书配置,因为我们正在使用Apache&lt; 2.4.8版本。

我们只需要添加 SSLCertificateChainFile /home/cert_ssl/intermediate.crt 指令。代码的最终SSL部分如下所示:

SSLEngine on
SSLCertificateFile /home/ssl/www.domain.com.crt
SSLCertificateKeyFile /home/ssl/domain.com.key
SSLCertificateChainFile /home/ssl/intermediate.crt

希望这可以帮助其他人解决此问题。完成此更改后,使用以下命令重启Apache:

service apache2 restart

一切都应该正常工作(您可以使用相同的SSL检查工具进行验证)。

谢谢你的时间!