2012-10-26 36 views
0

需要您的幫助。在這個htaccess問題上花費很多,我們仍然不知道如何管理這個問題。Tricky:重新映射網址,但在內部保持相同的網址

我對我公司的網站,該網站應重定向到http://www.example.com/foo許多http://www.example.com/menu-alias/foo鏈接。

這本身不應該是困難的部分,但聽取...棘手的部分如下。

我沒有設法讓網站(Joomla 1.5)在沒有'菜單別名'的情況下工作,這意味着所有http://www.example.com/foo應該內部映射到http://www.example.com/menu-alias/foo。這樣用戶在瀏覽器的地址欄中仍然有http://www.example.com/foo

爲了使它更加複雜,我必須將舊的菜單別名/富鏈接重定向到/ foo。

一些htaccess的古魯能幫我嗎?這甚至有可能嗎?

回答

0

您可以嘗試在你的文檔根目錄(或虛擬主機配置)將在htaccess文件下列規則:

RewriteEngine On 

# externally redirect requests that have "menu-alias" 
RewriteCond %{THE_REQUEST} /menu-alias/([^\ \?]+) 
RewriteRule^/%1 [L,R=301] 

# internally rewrite requests back to menu-alias 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/menu-alias/ 
RewriteRule ^/?(.*)$ /menu-alias/$1 [L] 

夫婦的潛在問題:

  1. 的Joomla可能會尋找原始未如果是這樣,重寫將不起作用。
  2. /menu-alias/添加回URI的規則會盲目地重寫所有不指向現有資源的請求。這意味着Joomla可能處理的「虛擬」路徑會在前面添加一個「菜單別名」。