各位好:
請問如果有一個網站了,如:
http://facebook.com/page/ithome
我另外有申請到ithome.com這個域名,
想請教如何設定才能全部行為都沿用在ithome.com這個網址下??
例如新網址的任何子連結作業,都會對應到原先網址的子連結~~
想要讓他變成在網址列是http://ithome.com/news/
但是卻是讀取網址 http://facebook.com/page/ithome/news/
就是可顯示原本新聞的連結網址的內容~~
簡言之,就是,
瀏覽器的網址列會取代
成為
請問這是要甚麼技術跟方式才可達到??
DNS代管??
自架DNS主機??
感謝回覆!!
你的問題沒有太詳細的定義。
如果 facebook.com/page/ithome 這個網站,
你可以設定該網站的 web server,
那就只要利用 rewrite 的語法,
就自動會把所有指定的舊網址跳到新網址。
如果 facebook.com/page/ithome
不是你能控制的網站,
接下來的問題,應該已不在DNS上了,
而是在於web主機上設定上,
大概可以分兩個主要議題要處理:
1.最基本的 reverse proxy 的議題
你要在
ithome.com 這一台web主機上,
設定 reverse proxy
把 http://facebook.com/page/ithome/news/
掛在 http://ithome.com/news/
如果你是用 apache 的話,
大概用類似這樣的語法即可設定:
<pre class="c" name="code">ProxyPass /news http://facebook.com/page/ithome/news
ProxyPassReverse /news http://facebook.com/page/ithome/news
2.連結上的相對路徑或絕對路徑的議題
如果在 http://facebook.com/page/ithome 的網頁上的連結,
看一下網頁的原始碼內容,
其href是 page1.html 的話,
那麼新網址的連結會連到自己的 ithome.com/news/page1.html
這不會是什麼問題。
若其連結的href是
http://facebook.com/page/ithome/page1.html的話,
那麼新網址的連結,又會點到舊網址網頁了,
如果你有權限改 http://facebook.com/page/ithome 上的網頁,
只要把上面的所有絕對路徑改為相對路徑,
馬上完工。若不能改的話,
那就要把新網站上的 apache 設定,
把網頁裡所有的 http://facebook.com/page/ithome 字樣,
都替換成 ithome.com,
這樣新網頁內的結連,才不會又連到舊網頁。
在 apache 上要這樣子做類似取代字串:
<pre class="c" name="code"><Location /news>
AddOutputFilterByType SUBSTITUTE text/html
Substitute s/facebook.com\/page\/news/ithome.com\/news/ni
</Location>
上述的碼,只取代html的,若連javascript有的話,
也要加入javascript的類型,做為取代的目標。
這是大原則上的做法,
細節上還牽涉到舊網站其他路徑上資料的問題,
舊網站上其他的資料,
如果還是要開放網路上給連結的話,
設定的考慮細節會很多很麻煩;
如果可以的話,
乾脆舊網站不讓外部直接存取,
一律透過新的主機來代理存取,
就不會有太多的細節要考量。
http://facebook.com/page/ithome
我另外有申請到ithome.com
您好:
感謝回覆,目前稍有頭緒可以先往"reverse proxy"試試看??
主要是先假若 facebook.com 這台主機我有其完整的控制權,
並在上面開設了 2個子目錄:
例如:
facebook.com/page/blog
facebook.com/page/ithome
然後blog跟ithome 目錄是不同的程式結構跟不同頁面在運作,可以說是完全不同的子站。
現在我另外申請到了單純的網址:
ex: www.blog.com 以及 www.ithome.com
想要直接用這2個網站當作主要門面,去運行其facebook.com子目錄下的所有作業。
將來存取www.blog.com/user/add.php 等同於存取facebook.com/page/blog/user/add.php
但是瀏覽器的一切作業還是以www.blog.com的預名下顯示~~