2013-04-23 44 views
1

有沒有辦法結合本:動態重寫規則在.htaccess

RewriteCond %{THE_REQUEST} (user-x/project/www) 
RewriteRule ^.*$ /user-x/project/www/index.php [NC,L] 

RewriteCond %{THE_REQUEST} (user-y/project/www) 
RewriteRule ^.*$ /user-y/project/www/index.php [NC,L] 

RewriteCond %{THE_REQUEST} (user-z/project/www) 
RewriteRule ^.*$ /user-z/project/www/index.php [NC,L] 

要其適用於「N」用戶「動態」的規則?

我腦子裏想的是:

RewriteRule ^/([a-z]+)/project/www/index.php$ /$1/project/www/index.php [NC,L] 

不幸的是用正則表達式匹配時重寫規則的第一個參數不包括整個路徑。

任何想法?

編輯:.htaccess文件位於「www」目錄中。

+0

如果它在'www' dir,那麼你有一個.htaccess文件爲每個用戶? – 2013-04-23 13:08:42

+0

是的,但它是從svn回購中退出。我想在回購中使用htaccess文件,因爲它還有配置用於登臺和生產環境。 – ibram 2013-04-23 13:54:27

+0

只需用'^([^ /] +)/'替換這部分'^ /([a-z] +)/',看看會發生什麼。 – 2013-04-23 13:58:38

回答

1

不知道你爲什麼試圖匹配%{THE_REQUEST},這實際上是請求而不是URI。但是,你可以結合,如:

RewriteCond %{THE_REQUEST} (user-x|user-y|user-z)/project/www 
RewriteRule^/%1/project/www/index.php [L] 

%{THE_REQUEST}變量實際上看起來是這樣的:

GET /some/path/maybe/a/user-x/project/www/and/some/more/stuff HTTP/1.1 

而且上述條件將匹配上述要求。否則,你可以更具體地關於笏匹配:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(user-x|user-y|user-z)/project/www/?($|\) 
RewriteRule^/%1/project/www/index.php [L] 
+0

正是我需要的!謝謝 – ibram 2013-04-24 07:33:31