10 個有用的 htaccess 代碼片段和技巧

已發表: 2020-09-10

.htaccess是每個網絡管理員都應該知道和理解的文件。 在其基本級別,它控制對您站點目錄的訪問。 但是,您可以做的遠不止這些,因為這篇文章中的片段將向您展示。

如果您想了解.htaccess的基礎知識,您應該查看我們的 .htaccess 簡介文章,該文章很好地解釋了啟動和運行所需的一切。

您可能還喜歡這些有用的 WordPress SQL 查詢片段或使 WordPress 對您的客戶友好的這些片段。

1. 控制對文件和目錄的訪問

密碼保護是一回事,但有時您可能需要完全阻止用戶選擇訪問特定文件或目錄。 這通常發生在系統文件夾中,例如應用程序需要訪問的includes文件夾,但沒有用戶需要該權限。

為此,請將此代碼粘貼到.htaccess文件中並將其放入目錄中:

但是,這將阻止包括您在內的所有人的訪問。 要授予自己訪問權限,您需要指定您的 IP 地址。 這是代碼:

xxx.xxx.xxx.xxx是您的 IP。 例如,如果您將最後三位數字替換為0/12 ,這將指定同一網絡內的 IP 範圍,從而省去了單獨列出所有允許的 IP 的麻煩。

如果要阻止對特定文件的訪問,包括.htaccess本身,請改用以下代碼段:

同樣,如果您想允許給定的 IP,請使用allow from列出它們。

如果要阻止對特定文件類型的訪問,請改用:

2.禁用目錄瀏覽

要防止目錄瀏覽,請添加以下內容:

但是,如果出於某種原因要啟用目錄瀏覽,請將其更改為以下內容:

3. 通過壓縮文件加快加載時間

您可以壓縮任何類型的文件,而不僅僅是圖像。 例如,要壓縮HTML文件,請使用以下命令:

要壓縮TEXT文件,請使用:

您還可以壓縮JavaScript ,或使用一個命令將壓縮添加到多種文件類型:

或者,如果你想用 GZIP 壓縮所有的 JavaScript、HTML 和 CSS 文件,你可以使用這個:

4.保護您的網站免受盜鏈

如果您不希望您的圖像進行熱鏈接,請將其添加到您的.htaccess文件中:

只需將 yourdomain.com 替換為您自己的,就可以了。

5. 阻止來自特定域的訪問者

如果您有來自您不歡迎的特定域的用戶,您可以禁止他們訪問您的站點。 例如,如果您的網站被列在您不希望流量來自的地方(即成人網站、黑帽網站等),您可以為它們提供 403 禁止頁面。 你需要啟用mod_rewrite ,但你應該沒問題,因為它通常是打開的。 添加此代碼段:

您需要將bannedurl1.combannedurl2.com等替換為您想要加入黑名單的域名。 您可能想要使用[NC]標誌,因為它指定您輸入的域名不區分大小寫。 [F]標誌指定要採取的操作——在這種情況下顯示 403 Forbidden 錯誤。 如果要禁止多個站點,請對除最後一個域之外的每個域使用[NC,OR]標誌,如果要禁止單個域,請僅使用[NC]標誌。

6. 阻止來自特定用戶代理的請求

如果您的日誌文件顯示特定的用戶代理(機器人或蜘蛛),您可以在.htaccess中添加幾行並拒絕他們訪問您的站點:

badbot1badbot1等替換為日誌文件中的機器人名稱。 這應該使此類程序遠離您的站點。

7.緩存文件

加快網站加載時間的另一種方法是通過文件緩存。 為了緩存文件,您需要添加以下內容:

您可以在此示例中列出的文件序列中添加更多文件類型(或刪除其中一些) - 做適合您的事情。 您還可以使用max-age指定文件將在緩存中存在的時間量(以秒為單位)。

8.禁用特定文件類型的緩存

如果您不想緩存特定的文件類型,則不將它們包含在緩存序列中會更容易。 但是,有時即使您沒有在其中明確列出文件,文件也可能會被緩存,在這種情況下,您可能只想為它們禁用緩存。 大多數情況下,您會希望禁用對動態文件(例如腳本)的緩存。 這是如何做到的:

只需通過管道傳輸您想要禁用緩存的文件,就是這樣。

9.繞過下載對話

默認情況下,當您嘗試從 Web 服務器下載文件時,會出現一個對話框,詢問您是要保存文件還是打開它。 對於大型媒體文件或 PDF,這種對話尤其令人惱火。 如果您上傳到服務器的文件是供下載的,您可以為用戶省去麻煩,直接進行下載。 這是您需要在.htaccess中設置的內容:

10. 重命名.htaccess文件

如果出於某種原因,主要是與安全相關,您想要重命名您的.htaccess文件,這很容易做到。 從理論上講,重命名.htaccess文件不會導致服務器上運行的應用程序出現問題,但如果您在重命名文件後偶然發現此類問題,只需將其重命名回其原始名稱即可。

您還需要更新文件本身或提到.htaccess的任何地方的任何條目; 否則你會得到很多錯誤。

11. 更改默認索引頁面

如果您希望您的索引頁面不同於默認的index.htmlindex.phpindex.htm等,這很容易做到。 這是您需要添加到.htaccess的內容:

mypage.html替換為您要用作索引的頁面的實際 URL,您就完成了。

12. 重定向到安全的 https 連接

如果您使用的是 HTTPS,並且希望將用戶重定向到您網站的安全頁面,請使用以下命令:

13. PHP 中限製文件上傳限制、Post 數據最大大小、最大腳本執行時間等。

.htaccess允許您設置一些直接影響 PHP 應用程序的值。 例如,如果您想在 PHP 中施加上傳限制,以便您不會因為大文件而耗盡託管空間,請使用以下命令:

當然,您可以將值設置為您認為合適的任何值——本示例中的 15M (MB) 並不是一成不變的。 您還可以限制在 PHP 中上傳的最大帖子大小。 為此,請添加以下內容:

同樣,您可以將10M更改為適合您的任何值。 如果您不希望腳本永遠執行,您可以藉助以下方法限制它們的執行時間:

240是腳本終止前的秒數,正如您猜測的那樣,它可以是任何值。 最後,如果您想限制腳本解析輸入數據的時間,請使用以下命令:

並以秒為單位設置適合您的任何值。

14. 偽裝文件類型

有時,您不希望用戶知道您網站上文件的文件類型。 隱藏此信息的一種方法是偽裝它們。 例如,您可以使所有文件看起來像是 HTML 或 PHP 文件:

使用.htaccess可以完成更多工作。 例如,您可以設置網站頁面的自動翻譯,或設置服務器時區,或從 URL 中刪除 www,或使用精美的目錄列表等。無論如何,在開始使用.htaccess進行實驗之前,請始終備份原始文件.htaccess ,所以如果事情沒有按計劃進行,你有一個工作副本可以恢復。