Php 数字海洋上WordPress的htaccess文件持续损坏
我有一个WordPress/WooCommerce网站,它托管在一个数字海洋吊滴上,定期出现服务器500错误 在检查apache日志之后,我可以看到这是由.htaccess文件引起的,该文件在检查时被错误地修改了 最常见的原因是未插入换行符,将两行合并为一行:Php 数字海洋上WordPress的htaccess文件持续损坏,php,wordpress,apache,.htaccess,mod-rewrite,Php,Wordpress,Apache,.htaccess,Mod Rewrite,我有一个WordPress/WooCommerce网站,它托管在一个数字海洋吊滴上,定期出现服务器500错误 在检查apache日志之后,我可以看到这是由.htaccess文件引起的,该文件在检查时被错误地修改了 最常见的原因是未插入换行符,将两行合并为一行: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On --> RewriteBase /RewriteRule ^index\.php$ - [L] &l
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
--> RewriteBase /RewriteRule ^index\.php$ - [L] <--
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
-->RewriteBase/RewriteRule^index\.php$-[L]我在去年年中遇到过这种情况。由于客户给了我丰厚的报酬,所以将站点克隆到我的笔记本电脑上并编辑我的主机文件,以便本地主机是我的笔记本电脑所能识别的客户的域,这并不需要太多的工作
事实证明,确实是一个插件导致了这个问题,一个特定的重定向插件。这不是我通常在我的网站上使用的重定向规则,所以我只是注意到客户端用那个坏插件添加了什么重定向规则,用我选择的重定向插件替换它,并手动输入以前插件中的所有重定向规则
回想起来,这似乎是一个很大的工作,但嘿,这就是为什么客户支付我很好。另外,我还打算如何在不影响生产服务器的情况下启用/禁用插件?这是由以下原因造成的。当两个PHP进程同时调用“flush_rewrite_rules()”时,就会发生这种情况
由于WooCommerce经常调用flush_rewrite_rules(),因此最终可能会有两个请求同时发生,并且.htaccess文件会损坏。(其他这样做的插件也可能有同样的问题。)
不幸的是,这个bug在那里没有得到太多的关注。这太奇怪了。不确定是什么原因造成的,但我使用的一种解决方法是完全禁用.htaccess(不管怎样,它可以说是更安全的w/o),并将WP重写规则添加到Apache配置中。谢谢您的回答,这很有意义。我感觉这是由WordPress的刷新永久链接/重写规则引起的。您是否有幸将.htaccess文件设置为只读?在我看来,这是在找到修复之前防止它发生的唯一方法。