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.com
和bannedurl2.com
等替換為您想要加入黑名單的域名。 您可能想要使用[NC]
標誌,因為它指定您輸入的域名不區分大小寫。 [F]
標誌指定要採取的操作——在這種情況下顯示 403 Forbidden 錯誤。 如果要禁止多個站點,請對除最後一個域之外的每個域使用[NC,OR]
標誌,如果要禁止單個域,請僅使用[NC]
標誌。
6. 阻止來自特定用戶代理的請求
如果您的日誌文件顯示特定的用戶代理(機器人或蜘蛛),您可以在.htaccess
中添加幾行並拒絕他們訪問您的站點:
將badbot1
、 badbot1
等替換為日誌文件中的機器人名稱。 這應該使此類程序遠離您的站點。
7.緩存文件
加快網站加載時間的另一種方法是通過文件緩存。 為了緩存文件,您需要添加以下內容:
您可以在此示例中列出的文件序列中添加更多文件類型(或刪除其中一些) - 做適合您的事情。 您還可以使用max-age
指定文件將在緩存中存在的時間量(以秒為單位)。
8.禁用特定文件類型的緩存
如果您不想緩存特定的文件類型,則不將它們包含在緩存序列中會更容易。 但是,有時即使您沒有在其中明確列出文件,文件也可能會被緩存,在這種情況下,您可能只想為它們禁用緩存。 大多數情況下,您會希望禁用對動態文件(例如腳本)的緩存。 這是如何做到的:
只需通過管道傳輸您想要禁用緩存的文件,就是這樣。
9.繞過下載對話
默認情況下,當您嘗試從 Web 服務器下載文件時,會出現一個對話框,詢問您是要保存文件還是打開它。 對於大型媒體文件或 PDF,這種對話尤其令人惱火。 如果您上傳到服務器的文件是供下載的,您可以為用戶省去麻煩,直接進行下載。 這是您需要在.htaccess
中設置的內容:
10. 重命名.htaccess
文件
如果出於某種原因,主要是與安全相關,您想要重命名您的.htaccess
文件,這很容易做到。 從理論上講,重命名.htaccess
文件不會導致服務器上運行的應用程序出現問題,但如果您在重命名文件後偶然發現此類問題,只需將其重命名回其原始名稱即可。
您還需要更新文件本身或提到.htaccess
的任何地方的任何條目; 否則你會得到很多錯誤。
11. 更改默認索引頁面
如果您希望您的索引頁面不同於默認的index.html
、 index.php
、 index.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
,所以如果事情沒有按計劃進行,你有一個工作副本可以恢復。