dinâmico reescreve usando $ 1,% 1,% 2 etc

1

como fazer reescritas mais complexas e dinâmicas usando $ 1,% 1,% 2 etc.

Estou tentando fazer uma reescrita mais dinâmica (tenho muitos domianos apontando para o mesmo servidor / site)

#   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]

mas agora estou enfrentando um problema ...

por #redirect to subdomain Eu não consigo descobrir como resolver a condição e regra como a outra que eu fiz .. de alguma forma eu preciso extrair o domínio da primeira condição e usá-lo na regra com% 1, mas como você pode fazer isso quando tem outra condição intermediária?

    
por clarkk 25.05.2011 / 17:10

1 resposta

1

Os dados de captura para %1 etc são usados a partir do RewriteCond imediatamente acima do RewriteRule .

Existe algum motivo para que sua avaliação / captura de caminho de URI não ocorra apenas no RewriteRule ? Algo parecido com isto (eu acho que isso é o que você está indo?):

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