4

我遇到問題,因爲.htaccess會自行更改並導致我的網站上500 - 內部服務器錯誤。這種改變每兩天發生一次。.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的最新版本(我們通常高達 日期,但遲到了幾天就這一點)。

  • 安裝了兩個安全插件(Better WP Security和Bulletproof Security)。

  • 除了刪除論壇插件,我們認爲這可能是導致漏洞的 。

  • 這兩個安全插件現在已被刪除。

  • 現在我已經改變了對htaccess文件

我們不能真正買得起的權限有我們的網站再次下井(500服務器錯誤)。 有什麼我錯過了,可能導致.htaccess得到改變? 注意:當我用原始文件替換已更改的htaccess文件時,它修復了500服務器錯誤。

回答

1

問題可能是由兩個安全插件之間的交互引起的。也許禁用其中一個將解決問題。

保護您的htaccess的另一種方法是將其分配給根用戶(如果您被允許)和/或使其只讀。當然,它不能解決潛在的問題,但至少包含這些效果。

+0

謝謝。 我目前有兩個安全插件被禁用(因爲我正在做一些升級)。但是今天早上又發生了一次,即使他們都是殘疾人。現在我已將文件權限設置爲只讀所有者,組和其他人。所以我會報告這是如何工作的。 – Josh

+0

使htaccess對所有者,組和其他人似乎都是隻讀的。但是你是對的,它實際上並沒有解決問題,它只是避免了它。 – Josh

1

快速瀏覽一下你的兩個安全插件,Bulletproof Security會對你的.htaccess文件進行很多操作。就我個人而言,我絕不會讓插件觸及.htaccess,因爲如果插件中存在任何錯誤,它可能會導致您的站點脫機並出現500服務器錯誤。

我會看看插件試圖在.htaccess中做什麼,並在禁用Bulletproof安全性後手動將其添加到文件中。

或者,你可以嘗試添加最初的註釋和以下行之間的額外linespace,像這樣:

# 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] 
+0

非常感謝您的回覆。我會放棄這一點。 我知道Bulletproof Security在htaccess上做了很多工作,但它是一個評分很高的插件,有很多用戶和反饋 - 所以我認爲這不是問題。無可否認,在我們安裝了這個插件之後,我們確實開始看到這個500服務器錯誤,但我們也安裝了它作爲在我們被黑客攻擊後恢復在線的方式。不可能說出它是哪一個。 我會給刪除IfModule一去,和間距。 不會刪除IfModule行,而是讓下一行碰撞? – Josh

+0

是的,刪除IfModule可能會導致下一行碰撞。這就是爲什麼我會添加額外的空間,看看空間是否消失。 – lwitzel

+0

由於某些原因,當我添加間距時,它會在保存時被刪除。該文件似乎喜歡無間隔地緊密排列在頂部。任何想法爲什麼? – Josh

0

我有同樣的問題,但我終於發現,.htaccess文件編碼應保存在默認ANSI和錯誤只是因爲我將其編碼更改爲UTF8