dynamic重写使用$ 1,%1,%2等

如何使用$ 1,%1,%2等进行更复杂和dynamic的重写

我试图做一个更dynamic的重写(有很多domians指向同一个服务器/站点)

# put 'www' as subdomain if none is given RewriteCond %{HTTP_HOST} ^([^\.]+\.[^\.]+)$ [NC] RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301] # rewrite subdomains RewriteCond %{HTTP_HOST} ^(admin|files|imap|mysql)\.[^\.]+\.[^\.]+$ [NC] RewriteCond %{REQUEST_URI} !^/_(admin|files|imap|mysql)/ [NC] RewriteRule ^(.*)$ /_%1/$1 [L] # redirect to subdomain RewriteCond %{HTTP_HOST} ^www\.([^\.]+\.[^\.]+)$ [NC] RewriteCond %{REQUEST_URI} ^/_([^/]*)/ [NC] RewriteRule ^(.*)$ http://%1.domain.com/ [L,R=301] # rewrite 'secure' subdomain RewriteCond %{HTTP_HOST} ^(demo|secure)\.[^\.]+\.[^\.]+$ [NC] RewriteCond %{REQUEST_URI} !^/_secure/ [NC] RewriteRule ^(.*)$ /_secure/$1 [L] 

但现在我正面临一个问题..

通过#redirect to subdomain我不知道如何解决条件和规则像我做了其他的..不知何故,我需要从第一个条件提取域,然后在与%1的规则中使用它,但如何你可以这样做,当你有另一个条件呢?

RewriteRule上方的RewriteCond使用%1等的捕获数据。

是否有任何理由您的URIpath评估/捕获不能只发生在RewriteRule ? 像这样的东西(我认为这是你要去的?):

 RewriteCond %{HTTP_HOST} ^www\.([^\.]+\.[^\.]+)$ [NC] RewriteRule ^/_([^/]*)/$ http://$1.%1/ [L,R=301]