4

我在 .htaccess 更改自身并在我的网站上导致 500 - Internal Server Errors 时遇到问题。这种变化每隔一天左右发生一次。

我的原始 .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(我们通常是最新的,但晚了几天)。

  • 安装了两个安全插件(Better WP Security 和 Bulletproof Security)。

  • 以及删除我们认为可能导致漏洞的论坛插件。

  • 这两个安全插件现已被删除。

  • 我现在更改了 htaccess 文件的权限

我们真的不能让我们的网站再次宕机(500 服务器错误)。有什么我错过的可能导致 .htaccess 改变的吗?注意:当我将更改后的 htaccess 文件替换为原始文件时,它修复了 500 服务器错误。

4

3 回答 3

1

快速浏览一下您的两个安全插件,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]
于 2013-02-06T21:10:42.713 回答
1

该问题可能是由两个安全插件之间的交互引起的。也许禁用其中一个可以解决问题。

保护您的 htaccess 的另一种方法是将其分配给 root 用户(如果您被允许)和/或使其只读。当然它并没有解决根本问题,但至少包含了效果。

于 2013-02-07T16:26:50.220 回答
0

我有同样的问题,但我终于发现.htaccess文件编码应该保持默认ANSI,错误只是因为我将其编码更改为UTF8.

于 2017-12-14T07:39:46.490 回答