我不確定我的.htaccess
文件是否有問題,但最近我一直在注意到它被覆蓋。它位於網站目錄的根文件夾中。這是我在我的.htaccess
:在Wordpress中覆蓋root.htaccess文件
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^mysite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.com$
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 week"
ExpiresByType image/jpeg "access 1 week"
ExpiresByType image/gif "access 1 week"
ExpiresByType image/png "access 1 week"
ExpiresByType text/css "access 1 week"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 week"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 week"
</IfModule>
## EXPIRES CACHING ##
# 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
如何防止這種情況的發生?該網站在共享主機上。
其他信息(2016年1月15日): 我有一個網站在臨時網站上有相同插件的副本。現場只有幾個不同的插件。否則他們是非常相同的。
在生活網站上,今天我發現.htaccess
文件每隔幾秒更新一次。我登錄到FTP,每次刷新目錄時,都會看到Last Modified
時間已更改。我再次添加上面的代碼,並每隔幾分鐘刷新目錄。它不斷改變Last Modified
時間,但內容沒有改變。我認爲它每隔幾個星期左右就會完全覆蓋一次內容。這可能是發生了什麼,但我不知道爲什麼。無論如何,我還將文件權限從644更改爲444.完成此操作後,每次刷新時Last Modified
時間都沒有更改。我會密切關注此事,並在幾天內再次檢查。
它可能是託管服務提供商的問題嗎?日誌中沒有任何內容表明任何有用的東西。
我會檢查你在網站上使用的插件,看看他們中的一個是否正在重寫htaccess文件。如果你可以一直讓文件重寫,請嘗試關閉所有插件,看看它是否重寫。如果沒有,開始打開插件,一個接一個,直到它重寫,然後你找到了你的罪魁禍首。 – Joe
Joe可能是對的,因爲Wordpress應該重寫「#BEGIN WordPress」和「#END WordPress評論」之間的內容。雖然在你的htaccess中有一個錯誤(與你的問題無關,但仍然):在最上面你有兩個沒有任何'RewriteRule'的'RewriteCond'。 – vard
@vard感謝您指出沒有'RewriteRule'的雙重'RewriteCond'。 – user1448031