[英].htaccess Changing Itself - Causing 500 Internal Server Error
我在.htaccess更改自身时出现问题,并在我的网站上导致500-内部服务器错误。 此更改大约每隔两天发生一次。
我的原始.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
更改后,它看起来像这样:
# 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
本质上,此行将移至上一行的末尾:
<IfModule mod_rewrite.c>
我们的网站在几周前被黑客入侵,并用于网络钓鱼。 我们的主机将其关闭,我们进行了一些他们认为足以重新打开我们的网站的更改。 我们改变了...
已更新至最新版本的Wordpress(我们通常是最新的,但延迟了几天)。
安装了两个安全性插件(更好的WP Security和Bulletproof Security)。
以及删除我们认为可能导致漏洞的论坛插件。
现在已删除了两个安全性插件。
我现在已经更改了htaccess文件的权限
我们真的负担不起再次使网站崩溃(500服务器错误)。 我是否错过了可能导致.htaccess更改的任何内容? 注意:当我将更改后的htaccess文件替换为原始文件时,它可以修复500服务器错误。
快速浏览一下您的两个安全性插件,Bulletproof Security对.htaccess文件进行了很多修改。 就个人而言,我绝不会让插件接触.htaccess,因为如果插件中有任何错误,它可能会因500服务器错误而使您的站点脱机。
在禁用Bulletproof Security之后,我将看看该插件在.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>
最后,您可以完全取消“ IfModule”,因为您知道它已安装在服务器上:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
该问题可能是由于两个安全性插件之间的交互引起的。 也许禁用其中之一将解决问题。
保护htaccess的另一种方法是将其分配给root用户(如果允许)和/或使其只读。 当然,它不能解决潜在的问题,但是至少可以包含效果。
我遇到了同样的问题,但最终我发现.htaccess
文件编码应保留在默认的ANSI
,并且错误仅是因为我将其编码更改为UTF8
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.