2012-12-26 65 views
2

所以基本上我已經做了一個webapp與以下網址www.foo.com/foo(當本地部署,我的應用程序有以下網址localhost:8080/foo/)。不過,我想用www.foo.com代替。我怎麼能這樣做呢?謝謝!我有一個apache2 web服務器和tomcat 7.初學者春天:如何處理網址

+1

爲什麼?如果您將www.foo.com分配給本地主機,您將無法再訪問真正的www.foo.com。如果你的應用代碼依賴於這個URL,那麼你做錯了什麼。 –

回答

2

這與Spring,Apache或Tomcat無關。這完全是關於name resolution,它是由操作系統中較低級別的東西完成的。您可以強制www.foo.com通過修改本地主機線,以解決在本地計算機中的hosts文件,所以它看起來是這樣的:

127.0.0.1 localhost www.foo.com 

在Linux上,這是在/etc/hosts。在Windows上,你會發現它在C:\Windows\System32\drivers\etc\hosts(感謝@JBNizet提供這個)。請注意,如果您這樣做,您將無法再訪問www.foo.com,因爲它始終會解析到您的本地計算機。

如果您嘗試這樣做是因爲您的應用在內部引用了「www.foo.com」,並且需要正確解析才能正常工作,那麼您試圖以錯誤的方式解決該問題。您應該將這些值拉到某種外部配置中,以便可以根據應用程序運行的環境進行適當設置。

更新:如果這只是部署到tomcat的根目錄下,一個已經回答了好幾次,就像Tomcat 6: How to change the ROOT application

+0

謝謝瑞安。我猜想我試圖做的是部署我的應用程序,但我想使用www.foo.com訪問它。現在,我必須使用www.foo.com/myapp來訪問它。 ive看了一下mod_proxy,並且工作正常,但是當我的應用程序重定向到配置文件頁面時,它會再次將foo附加到url。例如www.foo.com/foo/profile,而不是www.foo.com/profile – OckhamsRazor

+0

已更新。那是你在找什麼? –

+0

謝謝。是的,就是這樣。 – OckhamsRazor

0
ProxyPass  /http://www.abc.com:8080/myApp/ 
ProxyPassReverse/http://www.abc.com:8080/myApp/ 

或用

<VirtualHost X.X.X.X:80> 
    ServerName tomcatpage.yourdomain.com 
    ServerAlias tomcatpage.yourdomain.com 
    Redirect permanent/http://tomcatpage.yourdomain.com:8080/ 
</VirtualHost> 

瞭解更多關於mod_proxy

+0

我其實已經試過了。但是,如果我登錄到我的webapp,它會轉到http://www.abc.com:8080/myApp/profile,而不是http://www.abc.com:8080/profile。 – OckhamsRazor

+0

我編輯了我的答案。後者不是一種選擇嗎? – asgoth