搜索引擎優化的最佳 .htaccess 指南 – 示例
已發表: 2022-09-11
對您的 .htaccess 文件進行一些更改後,您的網站可能已離線。 但這不必擔心! 許多 SEO 在嘗試通過技術修復來超越時落入了這個陷阱。
通常,通過 WordPress 儀表板編輯 .htaccess 文件會導致恐慌發作,因為一旦您更新了不正確的 .htaccess 文件,您就會被鎖定在儀表板之外。 .htaccess 文件對 SEO 來說既是福也是禍,因為它們允許您更改網站的操作。
如果您的網站在 Apache Web 服務器上運行,.htaccess 可以幫助您處理從密碼保護到 301 重定向和自定義錯誤頁面的所有內容。
如果您正在尋求快速補救措施以在 a.htaccess 更新失敗後讓您的網站重新上線,或者您想了解有關優化網站的.htaccess 的更多信息,那麼您認為該資源不存在。
我們將進行一些 quick.htaccess 調整和建議,以便您作為 SEO 可以自信地對您的網站進行修改,而不必擔心負面後果。
您已經知道什麼是.htaccess 以及它對於使用 Apache Web 服務器的網站管理員有多麼有用。 但是,對於那些不熟悉 .htaccess 的人,我會先複習一下基礎知識,以幫助他們在實施之前掌握它。
什麼是.htaccess?

.htaccess 是一個配置文件,Apache Web 服務器軟件可以讀取和執行以啟用或停用其他功能和能力。 因為 .htaccess 文件是在基於 Unix 的環境中創建並在目錄級別呈現的,所以它會覆蓋全局 Web 服務器設置,從而允許特定的網站訪問設置。
.htaccess 代表什麼?
“超文本訪問”縮寫為 .htaccess。 在該文件在使用它來調整每個目錄的用戶可訪問性功能的開發人員中流行起來之後,這個名字就被派生了。
.htaccess 使用 Apache 服務器的 http.config 指令來啟用和限制具有用戶名和密碼的用戶對目錄的訪問。 然而,當談到 SEO 時,.htaccess 扮演著更大的角色。
.htaccess 是做什麼用的?
如果您的網站定期有很多不同的標準,請考慮使用 .htaccess。
作為 SEO,您可以使用 .htaccess 命令網絡服務器執行 301 重定向、激活緩存、更改 HTTP 標頭、控制抓取以及使 URL 對 SEO 友好等。
在哪裡可以找到 .htaccess 文件?
因為 .Htaccess 是一個目錄級設置,所以您幾乎可以在所有 Web 目錄的文件夾中找到它。 如果您有一個包含多個子目錄(網站)的 Web 目錄,則可以在根目錄以及每個子文件夾中找到 .htaccess 文件。
如果您使用的是 WordPress,Yoast 插件選項是訪問 .htaccess 文件的最佳方式。
注意:因為 .htaccess 不是初學者應該嘗試的東西,我建議先在演示站點上進行。 如果您被 WordPress 管理員鎖定,您需要知道如何使用 Filezilla 進入根文件夾。
如果您有 WordPress 網站,有一些插件可以讓您更改 .htaccess 文件。 因為大多數 WordPress 用戶使用 Yoast 作為他們的默認 SEO 插件,我將向您展示如何從 Yoast 儀表板中更改 .htaccess 文件。
第 1 步:轉到您的 WordPress 管理儀表板並登錄。
第 2 步:轉到 Yoast 設置頁面。
第三步:打開工具菜單。
第 4 步:從工具菜單中選擇“文件編輯器”。
第 5 步:編輯後保存 .htaccess 文件。
大多數 WordPress 網站中 .htaccess 的默認設置如下:
# 開始 WordPress
重寫引擎開啟
RewriteBase /
重寫規則 ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
重寫規則。 /index.php [L]
# 結束 WordPress
如果您的網站沒有 .htaccess 文件怎麼辦?
因為.htaccess 是一個自動創建的配置文件,它會出現在 99% 的情況下。 但是,由於它通常是目錄中的隱藏文件,因此網站管理員認為它已丟失。 如果您啟用“顯示隱藏文件”,您應該能夠找到它。
如果在所有這些之後仍然找不到 .htaccess 文件,則必須手動創建一個並將其上傳到您的 Web 服務器。
創建自定義 .htaccess 文件的步驟
第1步:拿一個記事本開始寫作。
第 2 步:寫下配置(使用上面提供的默認配置進行測試)
第 3 步:將文件另存為 ASCII 格式的 .htaccess。
第 4 步:確保文件未以 .txt 格式保存。
第 5 步:使用 Filezilla 將 .htaccess 文件上傳到您的 Web 目錄。
注意:如果您使用的是 WordPress 並且 .htaccess 文件字段為空,只需添加配置並保存即可。
如果您在更新 .htaccess 文件後被鎖定在 WordPress Dashboard 之外怎麼辦?
使用 Yoast 或 WP 文件管理器更新 .htaccess 文件後,您可能已被鎖定在儀表板之外。 不要擔心。 這是一個很容易解決的問題。
如果您是 SEO,請向開發人員或服務器管理員請求對您網站的 FTP 訪問權限。 如果您需要專業人士的幫助,您的開發人員可能是您致電的理想人選。
第 1 步:打開 FileZilla 並登錄到您的 Web 目錄。
第二步:打開目錄,下載.htaccess文件。
第三步:替換.htaccess文件中的默認設置並保存。
第4步:在目錄中,將舊的.htaccess文件替換為新的。
如果您的首要任務是盡快讓網站恢復在線,請使用默認代碼。 如果您對 .htaccess 文件進行了大量更改,請查找出錯的代碼。 將其從文件中刪除,然後再將其重新上傳到服務器。
為什麼更新 .htaccess 文件後出現錯誤?
如果您是一名嘗試從頭開始學習 .htaccess 的 SEO,那麼您一開始肯定會犯一些錯誤。 在您弄清楚 Web 服務器報告問題的原因之前,這是可以的。
在更改 .htaccess 文件時,SEO 面臨一些常見問題。 下面列出了最常見的 .htaccess 問題。
- 禁用覆蓋:您必須首先啟用 AllowOverride 才能使您的.htaccess 文件正常工作。 如果 AllowOverride 選項設置為 None,則在 .htaccess 中設置的所有自定義設置都將被禁用。 要確保“覆蓋”選項已打開,請執行以下操作:
第 1 步:導航到 Apache 配置文件並雙擊它 (http.conf)
第 2 步:在 AllowOverride 指令中將 Allow OverRide 更改為 AllowOverride All。
第 3 步:保存 Apache 配置文件並重新啟動 Apache。
- 文件名拼寫錯誤:第二個最常見的 SEO 錯誤是文件名拼寫錯誤。 Misspelling.htaccess 將導致錯誤,因為它是以 ASCII 格式保存的基於 Unix 的配置文件。 如果文件不以“.”開頭,Apache 服務器將忽略該文件和您提供的配置。 或以不同的文件類型上傳,例如 .txt。
- .htaccess 文件的層次結構很重要: .htaccess 文件的層次結構很重要:.htaccess 文件的層次結構很重要:.htaccess 文件的層次結構 IA 一些添加到 .htaccess 文件開頭的規則可能會覆蓋以後添加的規則在配置中。 如果您認為這些至關重要,請考慮將配置移至頂部。
- 多個.htaccess 文件:因為每個目錄都可以使用.htaccess 文件,所以您的網站可以使用多個.htaccess 文件。 在這種情況下,一個文件的配置可能會與另一個文件的配置衝突,從而導致問題。 可以禁用 Individual.htaccess 文件來解決此問題。
- 語法錯誤: .htaccess 文件的功能完全取決於用於設置您的網站的語法。 文件語法問題可能會使您的站點脫機,從而導致恐慌發作。 因此,在更改您的 .htaccess 文件之前了解語法至關重要。
更新 .htaccess 文件後,您會收到哪些常見錯誤消息?
用戶每次查看您的網站時都會直接或間接與網絡服務器進行交互。 當用戶點擊他們看到的照片和其他資源時,Web 服務器會獲取他們看到的站點,因此您可以將其限制為網站管理員。
.htaccess 是一些網站用來設置訪問其頁面的身份驗證的文件。 當涉及到 SEO 時,他們使用它來確保訪問者和搜索引擎機器人能夠快速訪問對他們來說最重要的頁面。 如果網站未能提供所需信息,Web 服務器會根據 .htaccess 文件中定義的配置生成錯誤代碼。
這是 Web 服務器無法獲取請求的數據時顯示的錯誤代碼列表。
客戶端請求錯誤
- 400 — 錯誤請求:無效的 URL 結構。 服務器無法理解用戶提出的請求。
- 401 - 需要授權:當網站管理員限制對頁面的訪問時,會顯示這些消息。
- 402——需要付款(尚未使用):如果付款啟動失敗,通常會給出此代碼。
- 403 - 禁止 -您收到 403 錯誤的簡單原因是因為您嘗試訪問具有受限權限的資源。 當用戶嘗試訪問需要身份驗證的頁面時,網站會顯示 403 禁止錯誤。
- 404 - 未找到: 404 向用戶明確指示所請求的 URL 在網站上不可用。 這可能是由於 URL 中的拼寫錯誤或頁面已從站點中刪除。
- 405 - Method Not Allowed:此 HTTP 響應狀態代碼表明服務器拒絕接受請求方法,儘管了解請求的目的。
- 406 — 不可接受(編碼):這通常發生在服務器無法用接受標頭請求響應時。
- 407 - 需要代理身份驗證:此錯誤表示由於瀏覽器和服務器之間缺少代理服務器身份驗證而無法完成請求。
- 408 — 請求超時:這是當服務器未能在分配的超時期限內接收到來自客戶端的完整請求時,網站管理員遇到的常見 HTTP 錯誤之一。
- 409 - 衝突請求:當目標資源的狀態與當前狀態衝突時會發生此錯誤。 要解決錯誤,請確定衝突並重新提交。
- 410 - 消失:此錯誤代碼表示對請求資源的訪問已從服務器中永久刪除,並且將始終如此。
- 411 - 需要內容長度:該錯誤表示由於未能定義內容長度標頭,服務器無法接受客戶端請求。
- 412 - Precondition Failed:這是由於與您的服務器上已實施的一個或多個安全配置的安全衝突而導致的錯誤。
- 413——請求實體太長:當請求的資源太大而服務器無法加載時,用戶可能會遇到 413 錯誤。
- 414 - 請求 URI 太長:想想 2048 個字符以上的 URL 結構。 服務器無法破譯產生的 414 錯誤。
- 415 — 不支持的媒體類型:當服務器拒絕加載不支持的媒體格式的資源時,會出現此錯誤。
服務器錯誤
- 500內部服務器錯誤
- 501 - 未實施
- 502錯誤的網關
- 503服務不可用
- 504網關超時
- 505 — 不支持 HTTP 版本。
.htaccess 是做什麼用的?

重定向
您最近是否更改了網站的域名?

作為 SEO,您不希望您的用戶看到 404 頁面,當然也不希望您來之不易的所有權限都蒸發掉。
考慮將您的 .htaccess 文件作為這兩個問題的解決方案。 您可以通過將重定向指令添加到您的 .htaccess 文件來將您的流量和站點權限重定向到新域。
有趣的是,您可以對網站的 URL 做同樣的事情。 您可以使用 301 重定向指令強制嘗試訪問舊 URL 的用戶和搜索引擎機器人查看您網站上的新頁面。
使用 .htaccess,以下是域級重定向的示例:
# 這允許您將整個網站重定向到任何其他域
重定向 301 / http://example.com/
使用 .htaccess,以下是 URL 重定向的示例:
重定向匹配 301 ^/old-url.html$ /new-url.html
對 SEO 友好的 URL
您的網址結構是否混亂? 訪問者和搜索引擎機器人是否難以解讀頁面上的內容? 這是很多站長都面臨的問題。
一個網站獲得權限後,不注意URL結構就成了一個大問題。
您可以使用 .htacces 為您的網站設置正確的 URL 格式。
此外,您的 URL 附帶的任何擴展名,例如 .html 或 .php,都可以通過在.htaccess 文件中添加指令來簡單地消除。
示例 1:使用 .htaccess 刪除 URL 中的擴展名
刪除 .php 作為擴展名
重寫引擎開啟
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
刪除 .html 作為擴展名
重寫引擎開啟
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [NC,L]
示例 2:使用 .htaccess 將 URL 設為小寫
方法一
RewriteCond %{REQUEST_URI} [AZ]
重寫規則。 ${lc:%{REQUEST_URI}} [R=301,L]
所有 URL 結構,包括域名,都將受到上述代碼的影響。
方法二
RewriteCond %{REQUEST_URI} [AZ]
RewriteRule ^.+.html$ ${lc:%{REQUEST_URI}} [NC,R=301,L]
只有 html 文件名會受到前一個文件名的影響。
示例 2:使用 .htaccess 進行動態 URL 重寫
重寫引擎開啟
RewriteRule /(.*)/(.*)/$ page.php?category=$1&product=$2
錯誤網址: site.com/page.php?category=2&product=54
好網址: site.com/sandwiches/rueben-sandwich/
- 使用 .htaccess 提高網站速度
網站管理員之間的新流行詞是頁面速度。
他們完全有理由引起騷動,因為谷歌現在認為它是 SERP 頁面排名中最重要的元素之一。
Google 不希望用戶在訪問排名靠前的頁面時產生負面體驗。
加載緩慢的網站也會浪費大量的抓取預算。
配置您的 .htaccess 文件是提高網站速度的最簡單、最安全的方法之一。
- 啟用緩存功能
通過在 .htaccess 文件中啟用緩存功能,網站的資源將保存在訪問者的瀏覽器中,從而加快加載速度。
您可以使用兩種不同的方法啟用緩存
ExperiesByType — 您可以使用此方法 in.htaccess 為您網站上的每個資源指定一個緩存時間窗口,也就是過期時間。
例子:
<ifModule mod_headers.c>
# 年
<FilesMatch ".(ico|gif|jpg|jpeg|png|flv|pdf)$">
標頭集緩存控制“max-age=29030400”
</文件匹配>
# 星期
<FilesMatch ".(js|css|swf)$">
標頭集 Cache-Control "max-age=604800"
</文件匹配>
# 45 分鐘
<FilesMatch ".(html|htm|txt)$">
標頭集 Cache-Control "max-age=2700"
</文件匹配>
</ifModule>
Cache-Control 標頭— 緩存控制標頭使用資源在到期前的最大使用期限。
例子:
# 大多數靜態資產一個月
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">
標頭集 Cache-Control "max-age=2628000, public"
</filesMatch>
啟用 Gzip 壓縮
網站資源的大小是減慢速度的唯一因素。 通過在 .htaccess 文件中激活 gzip,您可以在將數據傳輸到客戶端瀏覽器時降低圖片大小、文件大小和文件編號。
最簡單的 .htaccess 指令之一是啟用 gzip 壓縮。
這是一個插圖:
<ifModule mod_gzip.c>
mod_gzip_on 是
mod_gzip_dechunk 是
mod_gzip_item_include 文件 .(html?|txt|css|js|php|pl)$
mod_gzip_item_include 處理程序 ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
啟用放氣選項
因為有些網絡服務器不支持 gzip,所以網站可能會遇到困難。 在這種情況下,建議使用 .htaccess 文件中的 deflate 選項。
這是一個插圖:
<IfModule mod_deflate.c>
# 壓縮文本、HTML、JavaScript、CSS、XML
AddOutputFilterByType DEFLATE 應用程序/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE 應用程序/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE 應用程序/xml
AddOutputFilterByType DEFLATE 字體/otf
AddOutputFilterByType DEFLATE 字體/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE 文本/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE 文本/純文本
AddOutputFilterByType DEFLATE 文本/xml
# 以下幾行是為了避免某些瀏覽器的錯誤
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] 無 gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html
# 如果這些文件已經緩存,則不緩存
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip
# 代理必須提供正確的內容
# Header append Vary User-Agent env=!dont-vary
標題追加不同的用戶代理
</IfModule>
使用 .htaccess 改進抓取和索引
您可能已經在使用 robots.txt 文件來控制搜索引擎是否可以抓取您的網站並將其編入索引。 但是,您的網站可能包含網頁以外的資源。 rbot.txt 在這種情況下可能不起作用。
在 .htaccess 文件中設置 X-robots-tag 是使一些資源(例如 PFD 或 Word 文檔)無索引的理想技術。
.htaccess 文件的自定義標頭與所有索引器指令兼容。
例子:
<FilesMatch ".(docx|pdf)$">
標頭添加 X-robots-tag "noindex, noarchive, nosnippet"
</文件匹配>
在這種情況下,任何帶有 extensions.doc 和.pdf 的文件都將被視為 noindex、noarchive 和 nosnippet。
幾乎每個 Apache 服務器都帶有一個預配置的配置文件。 但是,由於這適用於整個站點,因此很難設置目錄級別的自定義。
這是 .htaccess 派上用場的地方。 .htaccess 文件可用於覆蓋目錄和子文件夾級別的 Apache 配置設置。
此外,您可以使用簡單的設置代碼設置身份驗證。 如果您在共享主機帳戶上有許多網站,這將特別有用。
.htaccess 文件的優點
- 它讀取所有請求。
- 無需重新啟動服務器,即可立即進行修改。
- 根據用戶偏好有效管理用戶訪問
- 在目錄級別設置配置。
- 對於 SEO 來說,這是一個巨大的福音。
.htaccess 文件的缺點
- .htaccess 文件的使用可以增強與託管網站相關的安全問題。
- 因為每次加載頁面時都會掃描和讀取 .htaccess 文件,因此它比服務器端設置要慢。
- 它會影響接收數百萬訪問者的網站的速度。
出於安全和性能考慮,不建議將 .htaccess 文件作為服務器設置的一種方式。