Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数字海洋上WordPress的htaccess文件持续损坏_Php_Wordpress_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 数字海洋上WordPress的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

我有一个WordPress/WooCommerce网站,它托管在一个数字海洋吊滴上,定期出现服务器500错误

在检查apache日志之后,我可以看到这是由.htaccess文件引起的,该文件在检查时被错误地修改了

最常见的原因是未插入换行符,将两行合并为一行:

# 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文件设置为只读?在我看来,这是在找到修复之前防止它发生的唯一方法。