2012-04-11 115 views
0

爲了便於維護,我正在將子網站組織到LAMP服務器上的不同文件夾中,但不希望最終用戶通過URL將它們組織到這些文件夾中。可擴展的URL重寫規則

目錄結構例如:

/類別1/WEBSITE1
/類別1/WEBSITE2
/類別2/WEBSITE3
/類別2/website4
/類別2 /網站5
/類別3/website6
/類別4 /網站7

目前顯示爲「http:// www .mydomain.com/category1/website1「,但我希望它始終顯示爲」http://www.mydomain.com/website1「 - 即使它們將類別名稱放在那裏。訣竅是我需要從一個.htaccess文件中做到這一點,X數量的類別中有X個子網站。目前我爲每個網站使用「重定向301 /網站1 /類別1 /網站1」以允許用戶使用較短的鏈接,但最終他們最終看到地址中的類別,並且.htaccess文件長達200個子網站參與其中。 :(

任何幫助,將不勝感激

+0

你怎麼知道我ñ網站是什麼類別?如果你將'/ website1'重定向到'/ category1/website1',你怎麼知道'website1'在'category1'中?我錯過了什麼嗎? – 2012-04-11 12:50:38

+0

我手動爲每個網站創建目錄,並且每個網站都有一個唯一的名稱 - 例如,因此website1永遠不會處於多個類別中。在內部,它們是按邏輯命名的,有點像「蘋果」將在「水果」類別中,而不是「肉類」類別的東西。那是你問的嗎? – gcs 2012-04-11 12:59:48

+0

是的,但不知道與網站關聯的類別,就無法動態重定向。你將不得不將你的類別/網站映射存儲在某個地方,否則你需要對它進行硬編碼。 – 2012-04-11 13:05:44

回答

0

使用mod_rewrite這是很直接的,如果你要在手動輸入:!

RewriteEngine on 
RewriteRule ^/website1$ /category1/website1 [L,NC] 
RewriteRule ^/website2$ /category1/website2 [L,NC] 

它可以創建一個RewriteMap以及有documention

希望有幫助。

+0

相信我,論壇發帖是我在網上查看文檔後的最後一招!在試用您的示例時,它似乎只是重定向,就好像它是「重定向301」一樣,我的意圖是隱藏類別文件夾名稱。大多數在線示例顯示瞭如何爲單個網站執行此操作,但根據我的情況可以看出不是多個。 – gcs 2012-04-11 17:07:19

+0

例如:------ RewriteCond%{REQUEST_URI}!/ category1/---------- RewriteRule ^(。*)$ category1/$ 1 [L] – gcs 2012-04-11 17:08:19

+0

您是否還有其他'重定向「到位?該示例不應該重定向。 – clmarquart 2012-04-11 23:26:48