Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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 .htaccess正在更改自身-导致500个内部服务器错误_Php_.htaccess_Wordpress_Internal Server Error - Fatal编程技术网

Php .htaccess正在更改自身-导致500个内部服务器错误

Php .htaccess正在更改自身-导致500个内部服务器错误,php,.htaccess,wordpress,internal-server-error,Php,.htaccess,Wordpress,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_FIL

我遇到了.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
# 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>
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束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
# 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>
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
基本上,该行上移到上述行的末尾:

<IfModule mod_rewrite.c>

我们的网站几周前被黑客入侵并被用于网络钓鱼。我们的主机关闭了它,我们做了一些他们认为足够好的更改,重新打开了我们的网站。 我们改变了

  • 更新至Wordpress的最新版本(我们通常 日期,但这一日期晚了几天)

  • 安装了两个安全插件(更好的WP安全性和防弹性 安全性)

  • 以及删除一个论坛插件,我们认为这可能是 脆弱性的原因

  • 两个安全插件现在都已删除

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

我们真的负担不起我们的网站再次宕机(500服务器错误)。 是否有任何我错过的可能导致。htaccess更改的内容?
注意:当我将更改后的htaccess文件替换为原始文件时,它修复了500服务器错误。

快速查看您的两个安全插件,防弹安全性会对您的.htaccess文件进行大量修改。就我个人而言,我永远不会让一个插件接触.htaccess,因为如果插件中有任何bug,它可能会导致您的站点离线,并导致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
# 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>

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


另一种保护htaccess的方法是将其分配给根用户(如果允许)和/或使其只读。当然,这并不能解决根本问题,但至少效果是可以控制的。

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

,非常感谢您的回复。我要试一试。我知道防弹安全在htaccess中起到了很大的作用,但它是一个拥有大量用户和反馈的高等级插件,所以我认为这不会是一个问题。诚然,在我们安装这个插件之后,我们确实开始看到这个500服务器错误,但我们安装它也是为了在我们被黑客攻击后恢复在线。很难说是哪一个。我将给出移除IFA模块的步骤和间距。移除IfModule行不会使下一行隆起吗?是的,移除IfModule可能会导致下一行隆起。这就是为什么我要添加额外的空间,看看空间是否消失。出于某种原因,当我添加间距时,它只是在保存时被删除。文件看起来像是在顶部紧密地排列在一起,没有间隔。知道为什么吗?谢谢。我目前禁用了这两个安全插件(因为我正在进行一些升级)。但今天早上这种情况再次发生,即使他们两人都残废了。我现在已将所有者、组和其他人的文件权限设置为只读。所以,我也会报告这是如何工作的。将htaccess设置为所有者、组和其他人的只读似乎是可行的。但你是对的,它实际上并没有解决问题,它只是避免了问题。