改變網址而不會出現「404 找不到網頁」:301 Redirect 與 .htaccess
本文同步發表於「真‧他媽的」與「真‧他媽的 - 樂多日誌」。
五花八門教學文:第 13 天
當你看到這一篇教學文的時候,這個部落格的網址已經由 http://vinta.ws/wordpress/ 變成 http://vinta.ws/blog/ 了,雖然兩者的差別不是挺大的,但是,這是 奇檬子(ki mo chi)的問題。
現在你在網址列輸入 http://vinta.ws/wordpress/ 的話,它會自動被轉換成 http://vinta.ws/blog/,因為我使用了 301 Redirect(Permanent Redirect:永久性重新定址)。在沒有使用 Redirect 的情況下,如果就冒然地把網址改成 http://vinta.ws/blog/ 的話,那些從 http://vinta.ws/wordpress/ 連進來的人就只會看到「HTTP 404 找不到網頁」。
方法就是直接更改 .htaccess,這個檔案通常會在網站的根目錄,如果沒有,就自己用 Notepad 新增一個。你的作業系統不允許 .htaccess 這樣的檔案名稱時,就先把它命名為 htaccess.txt,上傳到 FTP 之後,再把檔案名稱改成 .htaccess。
--------------- 網頁伺服器必須是 Apache ---------------
【情況一】
http://your_domain.com/wordpress >> http://your_domain.com/blog
讓連接到 /wordpress 的連結重新定址到 /blog,包含下層路徑
例如:http://vinta.ws/wordpress/?p=334 會被指向 http://vinta.ws/blog/?p=334
在 .htaccess 中要這麼寫:
Redirect /wordpress http://your_domain.com/blog
如果有安裝 mod_rewrite 模組的話,也可以這樣寫:
RewriteEngine on
RewriteRule ^wordpress(.*)$ /blog$1 [R=301,L]
【情況二】
http://your_domain.com/wordpress >> http://your_domain.com
讓連接到 /wordpress 的連結重新定址到 根目錄,包含下層路徑(如 /wordpress/xxx)
在 .htaccess 中要這麼寫:
Redirect /wordpress http://your_domain.com
如果有安裝 mod_rewrite 模組的話,也可以這樣寫:
RewriteEngine on
RewriteRule ^wordpress(.*)$ $1 [R=301,L]
【情況三】
http://old_domain.com/ >> http://new_domain.com/
讓連接到 舊網址 的連結重新定址到 新網址,前提是你必須是舊網址的擁有者
建議讓 舊網址 和 新網址 包持相同的目錄結構
把 .htaccess 放到 舊網址 的根目錄,然後要這麼寫:
RewriteEngine on
RewriteRule (.*) http://new_domain.com/$1 [R=301,L]
【情況四】
http://www.your_domain.com/ >> http://your_domain.com/
統一你的網址,不要出現 www
由 www.your_domain.com 進入的連結一律重新指向 your_domain.com
可以在 .htaccess 中這麼寫:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.your_domain\.com$ [NC]
RewriteRule ^(.*)$ http://your_domain.com/$1 [R=301,L]
------------ BLOG 不應該放在根目錄啊~ ------------
【技巧一】
確保你的網站實行了 301 Redirect,可以到 Search Engine Friendly Redirect Checker 檢查。輸入要檢查的網址和驗證碼就可以了。
【技巧二】
防止 .htaccess 檔案被檢視,則要在 .htaccess 中加入:
<files .htaccess>
order allow,deny
deny from all
</files>
【技巧三】
通常該目錄中沒有 index.html 的時候,Apache 會把此目錄下的檔案統統列出來。如果你不想這麼做的話,在 .htaccess 中加入這一行:
Options -Indexes
------------ 深圳人超愛穿高跟鞋的 ------------
這是我從深圳歸來的第一篇文章~
我這一趟去買了好多科幻小說,最重要的是,我找到了「戰爭遊戲」的續集:死者代言人(Sperker For The Dead)、外星屠異(Xenocide),當然,是簡體版的。我已經讀完了「死者代言人」,現在正準備讀「外星屠異」。我真的好喜歡這一系列的作品~ 另外,我也找到了一套「菲利普˙狄克」的小說,菲利普˙狄克 就是「銀翼殺手」,也是《魔鬼終結者》《異形終結》《強殖入侵》《關鍵報告》電影的原著小說的作者。
在深圳跑了好幾個地方的書城,我發覺啊,跟台灣的書店一樣,他們總是把「科幻」跟「奇幻」的書擺在一起。但是,它們是不一樣的東西啊!我每次走到標示著「科幻」的書櫃前,看到的總是那些「精靈」「魔法」「龍」,這不是科幻啊~
本文同步發表於「真‧他媽的」與「真‧他媽的 - 樂多日誌」。
去深圳是为了买书?现在过关只能带10本哦。
只有linux服务器才支持htaccess啊,windows好像不支持的。
「过关只能带十本」…
这什么烂规定…
你真的很爱看书耶,陈少爷
而且还很讨厌
= =
你干嘛不告诉我你什么时候走啊!
讨厌!
好, 非常好, 就是專門寫給apache 用的就對了
(其實apache也可以在Windows上跑)
不把IIS當成一回事就是了對嗎 XD
TO [BLT]FQX
有這個規定嗎?
我這次拖了三十幾本書回來啊
也沒被攔下來
.htaccess 是 Apache 的東西
跟是不是 WINDOWS 沒有關係
---
TO 失忆
當我想到我的機票的期限是禮拜三的時候
當天已經是禮拜二了啊
這一切都是命啊
---
TO Solo
教授說過,微軟是所有資工系學生的敵人
所以能不用就不用啊
而且那些 LINUX 上也沒有 IIS ......
不過
我覺得 IE 好好用喔
= =…
还是想叫你去死…
倒数第二天的时候我都没事啊~
你说一半就没说了(超讨厌的)
好吧
~没事了~
我会记得你的语录的
不过如果找不到我也没办法啊~
「大學生了沒?」是36台中天的節目,緊接在「康熙來了」之後。
你是台中人,我同事都覺得你超正的,尤其是你的部落格真是正到不行。
身為一個資本主義的擁護者和微軟系統管理員,
我必須鄭重駁斥你教授的話..(不然大家都把微軟當敵人我喝西北風啊)
而且你會發現, 越來越多人加入邪惡的微軟帝國陣營了
說不定之後你也要去學ASP, ASP.NET, VB 這些黑暗的東西...
微軟其實沒那麼爛啊...
像我們公司的伺服器就已經跑了33天而沒有重開機過了, 這是一個奇蹟!!
(糟了.. 表示我這個月忘記做安全更新了... *默默退下*...)
TO 失忆
我會努力地享受我的暑假
妳就安心地去考妳的試吧
這一切都是命~
---
TO Vincent
正
明明就是用來形容美女的啊!
---
TO Solo
33 天是好還是不好啊?
我們教授後來也開始敵視 GOOGLE 了......
33 天不用重開機又沒當機對 Windows 來說滿不錯的..
我聽說Linux Box 半年都不用重開機就是了...
Google 是越來越像微軟了啊...
雖然那些教授常常在靠北微軟
但是我去他們的辦公室看
他們的電腦裝的還是 Windows XP 啊~
环境:LAMP【linux+apache+mysql+php】
原本安装WP的網址是:http://wsion.com
后来我想讓它變成:http://wsion.com/blog/
我在後台直接把 WordPress address (URL) 和 Blog address (URL) 2项都 改成了 http://wsion.com/blog/
现在问题就出现了,在浏览器输入網址: http://wsion.com/blog/
出现500错误:Internal Server Error
现在我要让它变回http://wsion.com,可是 连管理页面也进不去了!!
请求解答,谢谢!!
我最討厭那種奇幻科幻分不清的傢伙了