2013-03-03 26 views
0

想要的目標: 在現有的網站上,我需要實施新的網站。新站點需要'分階段'實施,因此爲'開發者','測試'和'站點'創建子目錄。除了使用不同的useraccounts和數據庫的事實之外,所有這三個子目錄都包含相同的php/mvc實現。駐留在根目錄中的當前站點也應該保持正常工作。.htaccess無法在php/mvc子目錄中工作

當前配置嘗試: 我已經把.htaccess文件放在當前網站的根目錄下。

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^/dev(.*)$ <url>/dev/$1 
RewriteRule ^/test(.*)$ <url>/test/$1 
RewriteRule ^/site(.*)$ <url>/site/$1 

注意:而不是有一個完整的網址。 這應該將所有具有'dev'的url重定向到/ dev/$ 1,$ 1包含所有其他參數。

結果: 當'test'或'site''dev'的主頁被調用時。主頁顯示完美。

問題: 每次我點擊一個菜單項或鏈接,生成的URL被改寫爲正確的網址,這是:的/ dev /志工網頁=志願& LANG = NL

但我收到一條錯誤消息404:

The requested URL /dev/volunteering was not found on this server. 

請記住,它是關於自定義mvc實現。

所需的幫助: 什麼改變是必要的,以使瀏覽器理解,這種要求不應由目前的網站進行處理,但是,根據「開發」或「試驗」或「網站」中,請求應該以mvc實現理解的方式轉發到適當的子目錄中?

+0

如果你談論的MVC,那麼你就需要一臺路由器。 **你不應該**重寫規則,但保留一個。如果您有20或50次重寫,該怎麼辦?你會手動重寫它們嗎? – Yang 2013-03-05 04:34:29

回答

0

請試試這個:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(dev)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC] 
RewriteRule ^(test)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC] 
RewriteRule ^(site)(volunteering([^?]*)) $1/$2?page=$2&lang=nl [L,NC] 
+0

感謝您的輸入,但我收到了相同的錯誤消息。 – 2013-03-03 18:35:30

+0

直接網址:/ dev/volunteering?page = volunteering&lang = nl是否會產生任何錯誤? – Agilox 2013-03-04 08:59:25

+0

它會生成以下錯誤:在此服務器上未找到請求的URL/dev /志願服務。 – 2013-03-04 18:17:29