如何結束 WordPress 覆蓋 .htaccess 文件
已發表: 2023-02-23不久前,我們的一位讀者問是否可以阻止 WordPress 覆蓋您的 .htaccess 文件中的個性化代碼?
WordPress 與許多插件一起將自定義配置添加到 .htaccess 配置文件。 如果您有額外的自定義代碼到 .htaccess,那麼您可能會擔心它會被覆蓋或刪除。
在這篇文章中,我們將清楚地向您展示如何阻止 WordPress 覆蓋 .htaccess 文件。
為什麼 WordPress 會覆蓋 .htaccess 文件?
您的 .htaccess 文件是一個令人印象深刻的配置文件,其中包含有關您的 WordPress 網站的重要選項。 它具有告知您的託管服務器如何處理您的網頁的原則。
WordPress 使用 .htaccess 文件來存儲其永久鏈接選項。 每當您修改或重新生成永久鏈接時,WordPress 都會自動用新選項覆蓋 .htaccess 中的舊配置。
一些 WordPress 插件還有助於將其選項保存在 .htaccess 中。 例如,W3 Overall Cache 插件將修改您的 .htaccess 文件以配置作為插件一部分的緩存和優化資源。
最後,您可以對 .htacess 進行自己的個性化修改,以控制您的網頁的工作方式。 例如,您可以將定制的規則添加到文件中以保護您的管理位置、繼續保護您的網站免受黑客攻擊、設置重定向、禁止可疑 IP 地址等。
一些最終用戶擔心,如果他們將自己定制的規則合併到 .htaccess 中,那麼當 WordPress 用新配置覆蓋該文件時,它們很可能會被刪除。 其他用戶希望手動配置 .htaccess 並且根本不允許 WordPress 對其進行寫入。
有了剩下的報告,讓我們看看如何阻止 WordPress 覆蓋您的 .htaccess 文件。 只需使用下方的快速返回鏈接即可跳轉到您感興趣的區域。
如何防止 WordPress 覆蓋您的 .htaccess 指南
好消息是,如果您了解 .htaccess 文件的執行方式,那麼您可以放心,您的自定義過程不會被覆蓋。
這是因為文件中將被 WordPress 或您的插件修改的部分已被明顯標記。 只需確保您確實沒有為人員部分增加代碼。
不要修改 WordPress 標記內的代碼
正如我們之前報導的那樣,WordPress 使用 .htaccess 來存儲有助於 Web 優化的 URL 結構的配置。 每當您調整永久鏈接配置時,它將保存到文件中的代碼將被快速覆蓋和更新。
正如您在下面的屏幕截圖中看到的那樣,WordPress 會將此事實保存在兩個標記之間, # Start off WordPress
和# Finish WordPress
。
在這些人物標記中發現警告:
“BEGIN WordPress”和“END WordPress”之間的指令(行)是動態生成的,實際上只能通過 WordPress 過濾器進行修改。 對這些標記之間的指令所做的任何調整都將被覆蓋。
這表明 WordPress 不會覆蓋或修改您在這些標記之外添加的任何代碼。 用戶通常將他們的自定義代碼合併到文件的頂部,高於# Start WordPress
標記。
真的不要修改插件標記內的代碼
當插件將其選項保存到 .htaccess 時,它還會在看起來像# Start out Plugin
和# Conclusion Plugin
標記之間發現它。
例如,如果您安裝並安裝了 W3 Total Cache 插件以提高您網站的速度和效率,那麼它將在# Get started W3TC Browser Cache
和# Conclude W3TC Browser Cache
標記之間將規則添加到 .htaccess。
每當您更改插件的配置時,這些策略都會被覆蓋,因此您必須徹底避免將您自己的自定義 .htaccess 規則包含在這些用戶標記中。
為您的定制代碼生成標記
在異常情況下,一個行為異常的插件可能會修改其# Begin
和# Conclude
標記所在範圍之外的代碼。 另一方面,它通常不會修改位於 WordPress 或其他插件使用的標記之間的代碼。
如果您擔心行為不佳的插件會覆蓋您的代碼,那麼您可以將自己的標記插入到 .htaccess 文件中。
例如,您可以在 .htaccess 文件的主目錄添加# Start off MyCustomCode
和# End MyCustomCode
標記,然後在這些標記之間添加您的個性化原則。
如果您還需要將代碼插入到 .htaccess 的末尾,那麼您可以在那裡插入一個獨特的標記。 只要絕對確保給他們唯一的名字。 例如,您可以使用“MyCustomCodeTop”和“MyCustomCodeBottom”。
如何阻止 WordPress 修改 .htaccess
現在您了解了 .htaccess 的工作原理,您可以確信您的自定義代碼不會被 WordPress 或您的插件覆蓋。
儘管如此,一些開發人員和最先進的最終用戶希望阻止 WordPress 對 .htaccess 進行任何更改。
例如,他們可能希望通過將配置手動輸入 .htaccess 來創建永久鏈接。 在這種情況下,他們需要通過阻止 WordPress 將其擁有的永久鏈接選項保存到文件來避免衝突。
除非你知道你在做什麼,否則我們真的不建議這樣做,主要是因為它可能會導致突然的後果。 即便如此,也可以通過更改文件的權限或使用代碼來完成。
阻止 WordPress 使用文件權限更改 .htaccess
阻止 WordPress 修改 .htaccess 的唯一方法是使文件僅供檢查。 為此,您必須使用 FTP 客戶端或您的 WordPress 網絡託管公司提供的文件管理器更改文件權限。
您會在 WordPress 安裝的根目錄中找到 .htaccess 文件。 即將到來,您應該合適 - 只需單擊文件並選擇“文件權限”。
這將顯示一個彈出窗口,您可以在其中修改文件的屬性。
默認環境將為 644,但您可以通過立即在“數值”主題中鍵入或生成保證僅檢查“讀取”容器來將其更改為 444。
只需單擊“確定”按鈕後,該文件將只供檢查,不能修改。
當然,這必然意味著您也無法創建文件。 當您想進行更改時,您需要將文件權限簡單地重新設置回 644。
使用代碼阻止 WordPress 更改 .htaccess
另一個答案是使用讓 WordPress 知道不要創建 .htaccess 文件的代碼片段。 如果你想阻止 WordPress 修改 .htaccess 而不阻止你的插件,這是有益的。
請注意:修改任何核心 WordPress 數據文件都是危險的。 即使是一個小錯誤也會在您的網站上引發關鍵錯誤。 這就是為什麼我們只為最先進的人推薦這種技術。
僅在 wp-config.php 文件的末尾添加附加代碼片段。 如果您需要幫助,請記住參考我們關於如何在 WordPress 中編輯 wp-config.php 文件的指南。
incorporate_filter('got_rewrite', '__return_false')
在您執行此操作後,WordPress 將不再生成 .htaccess 文件。
當 WordPress 根本無法更改 .htaccess 時顯示錯誤消息
如果您在 .htaccess 設置為僅瀏覽時更改永久鏈接配置,則會顯示錯誤信息。
在選項 » 永久鏈接頁面的頂部,您將看到信息“您現在真的應該更新您的 .htaccess 文件。”
這讓您知道 WordPress 無法修改 .htaccess 文件。
通常,這就是您的意思。 但是,如果您確實希望將 WordPress 永久鏈接配置增加到 .htaccess,那麼您將需要手動進行。
在設置 >> 永久鏈接網站的底部,您會看到一條不同的錯誤消息,表明您的 .htaccess 文件不可寫。 在此之下,您將看到需要附加到 .htaccess 的指南。
如果您希望插入所有這些配置,那麼您將需要再次臨時將 .htaccess 文件權限調整為 644,以便可以對其進行編輯。 之後,您應該將規則粘貼到文件的 WordPress 開始和停止標記中,替換那裡現有的代碼。
完成後,只需將價格再次設置回 444 並保存文件。 它將再次不可寫。
我們希望本教程能幫助您發現如何阻止 WordPress 覆蓋 .htaccess 文件。 您可能還想研究如何在 WordPress 中整合驅動器通知,並查看我們最好的 WordPress 搜索引擎優化插件和工具的專業列表。
如果您喜歡這份報告,請訂閱我們的 YouTube 頻道以獲取 WordPress 在線視頻教程。 您還可以在 Twitter 和 Facebook 上找到我們。