2011-01-31 70 views

回答

1

這應該工作,IIRC:

RewriteRule ^/welcome/(.*)$ /$1 [R] 

然而,猜測了一下什麼是怎麼回事,如果這個前綴的原因是像一個Java應用服務器部署在上下文中的應用程序名爲「welcome 「,那麼更好的解決方案不是重寫URL,而是修復後端應用程序服務器以使其具有null上下文,即服務於/而不是/ welcome /。

這是因爲應用程序服務器可能希望生成其應用程序的其他視圖的鏈接,並將重新插入「歡迎」:這會變成一種痛苦,並且意味着您的網頁上的所有鏈接在訪問時都會獲得HTTP重定向(例如通過搜索引擎)。代理apache服務器沒有辦法解析HTML並告知何時應該刪除「welcome」,所以最好先修復首先編寫鏈接的服務器。

+0

這是一個codeigniter應用程序。這是我第一次部署一個。它會導致codeigniter使用您編寫的重寫規則的問題嗎? – Catfish 2011-01-31 22:55:24

+0

對不起,我對codeigniter一無所知。您也可以嘗試重寫規則,但我也會仔細閱讀手冊,Web上,SO以及您可以想到的任何地方,以查看是否可以從URL中刪除該上下文/控制器名稱。我非常驚訝,Tomcat和Jetty的記錄很差,考慮到URL對可用性的影響有多深,而且大多數(虛擬)服務器只處理一個應用程序。 – andybuckley 2011-01-31 23:12:54