2011-03-08 25 views
6

在我的網站上,所有圖片/樣式表都在/ CMS/...目錄中。最近,我們的網站轉移到新的服務器在一個臨時的網址,他們引用像/ newdirectory/CMS/...在url開頭添加一個目錄的URL重寫

我們如何追加/ newdirectory /所有/ CMS /調用?

+0

您使用的是什麼Web服務器? – 2011-03-08 06:07:07

回答

11

裏面的的.htaccess文件

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/newdirectory/CMS/ 
RewriteRule ^(.*)$ /newdirectory/CMS/$1 

這將進行重寫,所以訪問http://www.server.com/CMS/index.html實際上將服務於內容http://www.server.com/newdirectory/CMS/index.html

注意:此解決方案假定CMS是該域唯一服務的域。

如果這個域比CMS在職(也是唯一的CMS應該轉),那麼下面可能會更好:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/CMS/ 
RewriteRule ^(.*)$ /newdirectory/$1 
1

我建議使用mod_rewrite,其中大部分阿帕奇/ Linux服務器有。創建一個與內容調用你的網站的文檔根目錄.htaccess文件:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^/CMS/(.*)$  /newdirectory/CMS/$1 [QSA] 
</IfModule> 

這種方法將使它透明對最終用戶和當前的PageRank,搜索引擎優化等價值,所有入站鏈接沒有任何影響將是保持。

3

你不需要一個RewriteRule(或mod_rewrite)。您可以使用一個簡單的RedirectMatch:

RedirectMatch ^/CMS/(.*) http://tempserver.com/newdirectory/CMS/$1 
+0

RedirectMatch有什麼好處?我很感興趣...... – Jacob 2011-03-08 06:16:51

+0

它的體重略低,不需要啓用mod_rewrite。這兩點在今天的實踐中都不是真正的問題,但它仍然是一種很好的技術。 – nitro2k01 2011-03-08 06:24:10