301轉址 (301 redirect) 是將一個 URL 永久重新導向/跳轉到另一個URL,包括排名、流量與權重。301重定向適用於 SEO(網站架構重新設計、網域轉址、HTTP轉HTTPS、404 not found 修復… 等)。
302轉址 (302 redirect) 是將一個 URL 臨時重新導向到另一個URL,不包括排名與權重。302重定向適用於 A/B 測試和限時促銷活動。
轉址方法有四(以301重定向為例、推薦第一個):
1. 虛擬主機或架站平台提供的轉址工具
^?$符號看不懂?學習 RegEx 有助轉址設定。
2. 伺服器端 Nginx location rewrite 跳轉
給生成式 AI ChatGPT 4 的指令/提示:
在 nginx.conf 文件添加 301 重定向指令,
從
https://example.com/舊網址壹
到
https://example.com/新網址壹
從
https://example.com/舊網址貳
到
https://example.com/新網址貳
從
https://example.com/舊網址參
到
https://example.com/新網址參
若網址有尾部斜槓 (Trailing slash) ,可以這樣寫:
rewrite ^/舊網址壹/?$ /新網址壹/ permanent;
rewrite ^/舊網址貳/?$ /新網址貳/ permanent;
rewrite ^/舊網址參/?$ /新網址參/ permanent;
修改 nginx.conf 後,須重啟伺服器才能生效。
3. 伺服器端 .htaccess (Apache) RewriteRule 轉址
給 GPT-4 的指令:
這是在我的網站根目錄的 .htaccess 文件:
"""""""""
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
"""""""""
添加 301 重定向規則,
從
https://example.com/舊網址壹
到
https://example.com/新網址壹
從
https://example.com/舊網址貳
到
https://example.com/新網址貳
從
https://example.com/舊網址參
到
https://example.com/新網址參
直接給我完整 .htaccess 文件。
每個網站根目錄的 .htaccess 內容不盡相同,記得換成你的。
若 URL 有尾部斜槓,可以這樣寫:
# 301 Redirects
RewriteRule ^舊網址壹/?$ /新網址壹/ [R=301,L]
RewriteRule ^舊網址貳/?$ /新網址貳/ [R=301,L]
RewriteRule ^舊網址參/?$ /新網址參/ [R=301,L]