繁体   English   中英

.htaccess自行更改-导致500内部服务器错误

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM