【发布时间】:2015-08-11 05:58:06
【问题描述】:
我花了几个小时搜索并发现了许多类似的问题,但他们的解决方案要么不起作用,要么没有解决方案,所以这里是:
我正在迁移一个在 Wordpress 上运行 Woocommerce 的网站 - 它在当前服务器上 100% 运行,但必须移动它。在新服务器(Digital Ocean 上的 Ubuntu 14.04)上,所有页面都可以正常工作,除了涉及“ssl”的地方。我在服务器上安装了有效的证书,但是证书上的域与站点的域不匹配,因为我还没有将名称服务器指向我的新服务器。现在,我在子目录中使用 IP 地址运行站点,如下所示:
如果我在 Woocommerce 中禁用强制 SSL 选项,帐户和结帐页面可以正常工作。但我需要他们使用 SSL 来保证安全。 如果我在 Woocommerce>Settings>Checkout 中启用“强制 SSL”,帐户和结帐页面会显示内部服务器错误。 FWIW,我尝试禁用 Woocommerce 的 Force SSL 并使用另一个插件(如 iTheme Security 或 Wordpress HTTPS)并获得相同的结果)。
令人沮丧的是,php 和 apache 日志没有显示此错误(继续下面的内容)。我去了 .htaccess 文件,因为我了解到这是此错误的常见来源。 .htaccess 文件是:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /domain.com/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /domain.com/index.php [L]
</IfModule>
# END WordPress
这看起来不错,但我没有其他途径可以探索,所以只是为了试验,我删除了“domain.com/”的两个实例(即假装我没有在子目录中工作)。 当我这样做时,帐户和结帐页面将在 https 中加载(!),但不会加载 javascript 或 CSS 文件,因为它们都在“http”中,这会触发混合内容警告。因此,即使我可以看到这些页面的内容,它们看起来也很糟糕并且没有功能。最后,没有其他页面可以在这个新的 .htaccess 文件下工作,因为服务器正在为它们寻找错误的目录。
我完全被难住了,我发现其他人也同样被相关问题难住了。
我确定如果我得到任何日志记录,我会被指出正确的方向,但我已经尽可能地关注了每一个线程,而且看起来我的日志记录配置正确。在 /var/log/apache2/error.log 中,我有一些杂项日志,我认为这些日志与我重新加载 apache 的时间有关 - 与此 https 错误无关。我的 php.ini 文件打开了 log_error,应该记录到 /var/log/php_errors.log (我创建的一个文件),但这个文件是空的。
感谢任何帮助!
【问题讨论】:
标签: wordpress .htaccess ssl https woocommerce