gpt4 book ai didi

WordPress Woocommerce 网站 : Force SSL on Account page causes Internal Server Error

转载 作者:太空宇宙 更新时间:2023-11-03 13:39:05 27 4
gpt4 key购买 nike

我花了几个小时搜索并发现了许多类似的问题,但他们的解决方案不起作用或没有解决方案,所以这里是:

我正在迁移一个在 Wordpress 上运行 Woocommerce 的站点 - 它在当前服务器上 100% 工作,但必须移动。在新服务器(Digital Ocean 上的 Ubuntu 14.04)上,所有页面都在工作,除了涉及“ssl”的地方。我在服务器上安装了一个有效的证书,但是证书上的域与站点的域不匹配,因为我还没有将名称服务器指向我的新服务器。现在,我正在使用子目录中的 IP 地址运行站点,如下所示:

http://104.236.XXX.XXX/domain.com/

如果我在 Woocommerce 中禁用强制 SSL 选项,帐户和结帐页面可以正常工作。但我需要他们使用 SSL 来确保安全。如果我在 Woocommerce > 设置 > 结帐中启用“强制 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(我创建的文件),但该文件是空的。

感谢任何帮助!

最佳答案

好吧,我一次更改了三件事情,但我无法确定哪一件解决了问题,所以我会列出所有这些,以防其他人遇到同样的情况。

首先,我意识到在我的 SSL 虚拟主机 (/etc/apache2/sites-available/default-ssl.conf) 中,我的 ServerName 被设置为 最终 的域而不是我当前使用的 IP 地址。这绝对是问题的一部分,但不是全部问题。

其次,我将我的整个网站从子目录中移出并移到了根目录中 - 我确信这不是必需的,但我认为它消除了一个可能的混淆/问题来源。

第三,我实现了在某些博客或文章中找到的修复程序(我现在终究找不到)。修复在我上面提到的虚拟主机中,看起来像这样(我在最后删除了评论和不相关的 SSL 部分):

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin email@domain.com
ServerName 45.55.XXX.XXX
DocumentRoot /var/www/

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/domain.com.key
SSLCertificateChainFile /etc/apache2/ssl/intermediate.crt

[ ** The rest of the default ssl virtual host stuff ** ]

</VirtualHost>
</IfModule>

确保 ServerName 和 DocumentRoot 正确。我认为这是子目录导致问题的地方,但我也不是 100% 确定。如果我能找到该代码的来源,我会回来并添加信用。

关于WordPress Woocommerce 网站 : Force SSL on Account page causes Internal Server Error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30511427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com