.htaccess 是一種用於 Apache 網頁伺服器的配置檔案,它可以用來設定伺服器的行為。
.htaccess 檔案可以用來實現非常多的功能,包括 URL 轉址、封鎖特定 IP 地址、禁止目錄列表等。編輯.htaccess需要一定的經驗和技能,在進行任何更改之前,請務必先進行備份。
.htaccess 是什麼?
.htaccess是一個在Apache伺服器軟件下的設定檔,它能夠設定、控制其路徑下的檔案、資料夾和子目錄。
.htaccess 檔案位置在哪裡?
.htaccess 檔案通常位於根目錄(public_html 或 www)資料夾中。
需要注意的是,.htaccess只會出現在Apache的伺服器下,若使用Nginx的伺服器,是不會有這個檔案的,取而代之的是nginx.conf檔案。
.htaccess 影響SEO?
.htaccess 可歸類於技術SEO中,不直接影響SEO,但錯誤設定可能會封鎖部份IP段或網絡爬蟲,使搜尋引擎無法順利檢索網站,自然無法收錄並自然在SERP中。
所以,要確保 .htaccess 設定準確。
如何編輯 .htaccess 檔案?
.htaccess是一個純文字檔案,你可以使用任何記事本軟件(.txt)開啟並編輯它,Windows自帶的記事本軟件或Notepad++都可以。
提示:在編輯 .htaccess 檔案之前,記得要先複製一個作備份,以免編輯錯誤造成伺服器存取異常。若出現異常,可刪除錯誤檔,建立一份txt檔案並命名為.htaccess,並上傳到伺服器目錄。
.htaccess常見語法
.htaccess有不少常見語法可分享,包括:禁止特定IP、限制目錄存取、防止圖片盜鏈、轉址等等。
伺服器層面語法
伺服器層面語法有3種:
禁止特定IP
Order allow,deny
Deny from 111.22.33.4
Deny from 112.23.4
Allow from all上述語法能禁止111.22.33.4及112.23.4 的IP地址開頭的用戶存取。
限制目錄存取
# disable directory browsing Options All -Indexes
上述語法能防止有心人士存取伺服器目錄的檔案。
防止圖片盜鏈
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ https://i.imgur.com/g7ptdBB.png [NC,R,L]
把”example.com” 改成你的域名;” https://i.imgur.com/g7ptdBB.png” 改成你想展示的圖的連結。
有些人網絡上搜到你的圖,直接盜鏈展示。這樣先不算圖片版權,還要用被佔用流量,被賣還要幫人數錢。上述語法能限制其他人盜鏈,圖片不在你的域名展示是會被取代做另一張無法存取的圖。
注意:這類代碼必需慎用,否則可能使網站無法展示圖片。個人就不啟用了; WordPress配jetpack插件有image CDN,也不怕了。
轉址
轉址有301或302,文章合併或修改後,可以用301轉到新連結。使用Wordpress的話可使用Rankmath(SEO插件)或Prettylink(縮網址)這類插件取代,就不需要搞代碼了。
301/302
Redirect 301 /oldpage.html https://www.example.com/newpage.html
301語法是告知搜尋引擎永久轉址,302則是暫時轉址。
上述”301” 可以換成”302”
“/oldpage.html” 換成你的舊頁面
” https://www.example.com/newpage.html” 換成你的新頁面連結。
強制 HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]提示:若是Wordpress用家,不熟使用.htaccess代碼,建議選用 Really Simple SSL 的Wordpress插件,安裝SSL後一鍵轉換http到https,非常方便。
WordPress 安全性
目前WordPress用戶越來越多,使用WordPress 需要更注重安全性,利用 .htaccess 可提高安全性。如果不熟識語法,可考慮使用iThemes、All-In-One Security或Wordfence Security。
保護 .htaccess 檔案
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>只能使用ftp修改 .htaccess檔案。
保護 wp-config.php 檔案
<files wp-config.php>
order allow,deny
deny from all
</files>WordPress 速度
如果不熟識語法,可考慮使用WP-Rocket這類Cache插件加速頁面。小心使用以下語法,誤用有可能使網站無法順利存取。
啟用瀏覽器暫存檔
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month"
# CSS
ExpiresByType text/css "access plus 1 year"
# Data interchange
ExpiresByType application/json "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType text/xml "access plus 0 seconds"
# Favicon (cannot be renamed!)
ExpiresByType image/x-icon "access plus 1 week"
# HTML components (HTCs)
ExpiresByType text/x-component "access plus 1 month"
# HTML
ExpiresByType text/html "access plus 0 seconds"
# JavaScript
ExpiresByType application/javascript "access plus 1 year"
# Manifest files
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Media
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# Web feeds
ExpiresByType application/atom+xml "access plus 1 hour"
ExpiresByType application/rss+xml "access plus 1 hour"
# Web fonts
ExpiresByType application/font-woff2 "access plus 1 month"
ExpiresByType application/font-woff "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
</IfModule>啟用Gzip壓縮
<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 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 application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
目錄
Toggle



