.htaccess的基礎知識

文章撰寫者:
  • 託管指南
  • 更新:Jun 29,2013

了解服務器的.htaccess文件是Web設計和開發的關鍵組件

大多數業餘Web託管客戶端和新Web開發人員都認為任何服務器設置中最重要的部分是已安裝的軟件。 他們狂熱地安裝基於ASP或基於PHP的應用程序,希望創建由流行的軟件和廣泛的數據庫單元格和表格控制的高級內容。 但在這一系列活動中,幾乎每個開發人員最初都忽略了服務器本身最重要和最強大的文件之一。 該文件稱為“.htaccess”文件,它控制所有形式的錯誤消息到受密碼保護的頁面,永久鏈接結構到無法看到網站內容的被阻止用戶。

默認情況下,“。htaccess”文件駐留在服務器的根公共目錄中。 在Linux服務器上,該目錄幾乎總是被稱為“public_html”。 對於需要從此文件的強大功能中受益的子文件夾, 可以放置輔助“.htaccess”文件 在服務器本身的每個子文件夾和其他目錄中。 具有“.htaccess”文件的目錄中的每個文件或文件夾都會繼承該文件的權限和準則,除非被文件的單獨編碼版本覆蓋。 如果聽起來很複雜,那是因為它是一種控制服務器行為的中等技術。 然而,這不是不可能學習的。 一旦開發人員或新手網絡託管客戶學習如何使用此文件控制他們的服務器,他們就會發現無法回到“.htaccess”文件是一個難以理解的麻煩,更不用說使用的日子了。

密碼保護目錄是一個帶有.htaccess文件的Snap

Web託管服務器安全性是幾乎每個客戶在承諾任何特定託管公司或服務器技術之前都要考慮的事情。 在大多數情況下,Windows和Linux服務器同樣安全,可以保留那些不應該擁有它的信息。 但就防禦黑客和惡意網頁腳本而言,情況才是真實的。 在密碼保護特定文件或目錄時,所有工作必須由.htaccess文件完成,該文件與服務器的技術或安全功能分開。

.htaccess文件有自己獨特的保護這些目錄的風格,正如其簡單的逐行編程語言和技術所規定的那樣。 在這種情況下,用戶只需定義要保護的目錄,然後設置訪問文件本身中該目錄所需的參數。 當通過典型的Web瀏覽器訪問時,該密碼可以僅應用於一個文件,整個目錄或整個服務器本身。 文件或目錄密碼的簡單單行設置在完全填寫和啟動時類似於下面的示例。

AuthUserFile /public_html/secure/files/.htpasswd
AuthGroupFile / dev / null
AuthName EnterPassword
AuthType基本
需要用戶secureUser

這些代碼行與一個名為“.htpasswd”的新文件配對。 此文件位於受保護的目錄中,並包含用戶名和密碼,用戶和密碼將授予用戶訪問受保護信息的權限。 在上面的示例中,已指定只允許用戶“secureUser”訪問目錄,並且必須輸入所需的密碼,該密碼由“AuthName EnterPassword”代碼行確定,該代碼位於用戶之上定義。

在將在受保護目錄中創建的“.htpasswd”文件中,用戶只需添加一行代碼。 格式很簡單; 每個用戶和密碼組合使用冒號分隔。 這意味著他們只需在文件中添加“user:password”即可。 在這種情況下,它將是“secureUser:securedirectorypassword1”作為示例。 這將定義所有可能的訪問代碼和用戶名。 站點管理員當然可以在此列表中包含多個用戶和密碼,只要從“.htpasswd”文件中刪除“require user secureUser”區別即可。 或者,他們可以為同一用戶名定義多個密碼,同時保留該代碼行,確保如果從“.htpasswd”文件中刪除正確的密碼,則可以隨時從某些個人或組撤消訪問。

要了解有關此問題的更多信息,請閱讀: 將.htpasswd與您的Linux共享主機帳戶一起使用.

定義易於記憶的網站內容和靜態頁面鏈接

多產的“.htaccess”文件最廣泛使用的當前用途之一是使用文件的參數來定義語義 - “固定鏈接“當使用WordPress或MovableType等內容管理軟件時,對於網站內容和靜態頁面。這不僅可以幫助用戶記住和重新加載網站內容,還可以提高網站在主要搜索引擎上的搜索排名。這些搜索引擎使用語義友好的URL來確定任何給定頁面上的內容以及內容是否與URL匹配。標題 - URL匹配表示更多權限,用戶更有可能找到他們正在尋找的信息。適當的,網站排名更高使用固定鏈接結構時的主要搜索引擎。

對於已將WordPress安裝到其站點服務器的用戶,在安裝過程中添加以下行幾乎是一項要求 - 尤其是對於3.0及更新版本的更新版本的軟件。 代碼行看起來與下面的示例完全相同,並且是全球超過60百萬自託管WordPress客戶的標準。

RewriteEngine敘述在
RewriteBase指令/
RewriteCond%{REQUEST_FILENAME}!-F
的RewriteCond%{REQUEST_FILENAME}-D!
重寫規則。 /的index.php [L]

同樣,很容易看到“.htaccess”文件編程指令的逐行結構。 這幾行簡單的代碼告訴服務器使用WordPress“index.php”文件作為源自內容管理軟件解決方案本身的所有URL的基礎。 使用該文件作為基礎,並將條目標題重寫為永久鏈接,URL重寫基本上將數據庫查詢與文件權限相結合,以創建“友好”URL。 修改“.htaccess”文件以重寫其URL是目前領先的(如果不僅僅是)從PHP和基於ASP的內容管理軟件解決方案構建友好URL的方法。

將搜索引擎引導到最近在本地或遠程重新定位的內容

雖然永久鏈接旨在消除隨機重定位內容和密集重定向的過程,但它們並未完全消除該問題。 實際上,永久鏈接可以在任何內容管理解決方案的控制面板中進行管理; 用戶更改固定鏈接結構的那一刻,CMS軟件範圍內的所有內容都可能丟失,並向搜索引擎和用戶拋出錯誤。 這可以通過非常簡單的“.htaccess”代碼行來解決,該代碼重定向客戶並向主要搜索引擎拋出“不可見”錯誤。 代碼是這樣的:

重定向301 / archive / / past-entries /

此重定向將舊網址和新網址與首先列出的舊網址並排放置。 它指示服務器在瀏覽器和搜索引擎“蜘蛛”中拋出301重定向錯誤,但最終用戶從未看到此錯誤。 相反,301重定向是在幕後發生的不可見錯誤。 當用戶自動進入新路徑和新內容時,瀏覽器和搜索引擎會理解“301”意味著“永久移動”。 瀏覽器和遇到此錯誤的任何搜索引擎都會立即更新其記錄以反映新的URL,並立即刪除舊的URL。

這是在不丟失客戶的情況下轉移到新域名的好方法。 舊服務器上的“.htaccess”文件可用於實際指向全新域名的內容,只需對上面顯示的代碼行稍作更改即可。 在這種情況下,301重定向代碼不是指向同一服務器上的兩個相對路徑,而是如下所示:

重定向301 / http://www.your-domain-name.com

這指示服務器將根目錄或任何子文件夾中的任何內容以與舊服務器上完全相同的路徑發送到新域名。 所有更改都是實際的域名本身。 同樣,因為它使用301錯誤代碼,搜索引擎將自動更新其記錄以反映新域名。 這不僅是一個很好的可用性工具,但它也可以防止網站失去其搜索引擎排名。 搜索引擎不會重新開始,而是會理解這是一個新位置的同一個網站。 他們將保持舊的感知和排名,管理員將從使用這種獨特的域之間移動方法中受益匪淺。

從不可見的錯誤和重定向到站點訪問者的實際錯誤頁面

當然,“。htaccess”文件專門用於將用戶重定向到新內容,同時無形地更新搜索引擎,但是當內容丟失,無法顯示或編碼時,此獨特文件也可用於顯示特定錯誤頁面。一種錯誤阻止頁面加載的方式。 這是通過根據服務器的三位錯誤代碼指定要顯示的特定頁面來完成的。 這些代碼集成到Apache和IIS等服務中,因此除了“.htaccess”文件之外,不需要進行任何配置。 下面的示例解決了世界上最常見的錯誤頁面,稱為缺失頁面和目錄的“404錯誤”。

ErrorDocument 404 /404.html

每當用戶偶然發現不再存在的鏈接或已刪除的子文件夾時,它們將自動被“.htaccess”文件重定向到信息豐富且有用的404錯誤頁面,該頁面可以自定義並由網站的管理員。 這是一種將它們帶回折疊的好方法,而不是通過一個簡單且不起眼的錯誤頁面將它們發送出去,該頁面不提供丟失頁面的替代方案。

幾乎每種類型的基於服務器的頁面加載錯誤都可以完成相同的過程。 這包括401,403和500服務器錯誤,以及大多數用戶遇到的典型“未找到頁面”的錯誤。 請務必研究每個錯誤代碼的含義,並為每個錯誤提供自定義編寫的消息和網站設計,以便用戶輕鬆返回現有網站內容。 這是確保即使網站的導航或邏輯故障轉化為機遇和成功的最佳方式。

當所有其他方法失敗時,禁止用戶使用一些簡單的代碼行

在大多數情況下,“。htaccess”文件用於那些傾向於普通用戶青睞的東西。 這包括錯誤頁面,自定義重定向方法和“友好”永久鏈接URL以及其他強大功能。 但是,此文件也可用於確保某些用戶完全被拒絕訪問該網站。 這是一種很好的方式來禁止那些“垃圾”網站評論,經常導致其他讀者之間的中斷或爭論,或者只是無法以負責任的方式處理他們的訪問權限。

為了保持站點的完整性並確保其他讀者不會因為只有幾個壞蘋果而感到沮喪,“。htaccess”文件允許禁止特定IP地址或整個範圍(或“塊”)的IP地址。 這意味著整個國家都可以被禁止,整個ISP都可以被禁止,或者整個州,社區或組織可能被迫去其他地方閱讀他們的日常內容並造成麻煩。 當在網站的“.htaccess”文件中使用時,禁止用戶的過程如下所示:

允許所有
從158.23.144.12否認
從24.100否認

在上面的示例中,指示站點允許來自所有IP地址的訪問者,除了從IP地址158.23.144.12訪問的訪問者。 此外,24.100 IP地址範圍內的所有訪問者都被拒絕訪問某個站點。 這個範圍可能會禁止整個互聯網服務提供商的客戶群閱讀網站的內容。 但請放心,在嚴峻的情況下,這有時是必要的。

擁抱.htaccess文件並使用一些Power Over Site功能

.htaccess文件的優點在於它允許服務器管理員控制被認為非常高級的設置或需要“root”訪問服務器的設置。 此文件是管理訪問,錯誤,重定向甚至URL結構和語義感的好方法。 掌握它是保護和授權網站的新訪客和回訪者的關鍵。

Jerry Low的文章

Geek爸爸,SEO數據迷,投資者和揭開Web主机秘密的創始人。 自2004以來,傑瑞一直在建立互聯網資產並在線創造財富。 他喜歡隨性的塗鴉和嘗試新食物。