Como eu reescrevo uma URL que precisa capturar tanto o REQUEST_URI quanto o HTTP_HOST?

1

Eu preciso reescrever o REQUEST_URI e o HTTP_HOST, mas estou recebendo um erro de redirecionamento ao implementar isso:

# Capture mysite.com/pages/123
RewriteCond %{REQUEST_URI} ^/pages/[0-9]+/?$
RewriteRule ^/pages/([0-9]+)/?$ /home/mysite/www/pages.php?id=$1
# Now capture the subdomain
RewriteCond %{HTTP_HOST} ^([a-z0-9]+).mysite.com
RewriteRule (.*) $1&subdomain=%1 [L,QSA]

O que estou fazendo de errado aqui?

Obrigado

    
por Tom 11.05.2012 / 23:18

1 resposta

1

Eu tentaria algo como o seguinte:

# This will map requests like 
# http://XXX.mysite.com/pages/123?somevar=someval&more=more2
# to /dir/pages.php?id=123&subdomain=XXX&somevar=someval&more=more2
RewriteCond %{HTTP_HOST} ^([a-z0-9]+).mysite.com
RewriteRule ^/pages/([0-9]+)$ /dir/pages.php?id=$1&subdomain=%1 [L,QSA]

O primeiro RewriteCond em %{REQUEST_URI} é provavelmente desnecessário, porque contém o componente path do URI solicitado, que já está disponível na correspondência RewriteRule Pattern.

    
por 12.05.2012 / 00:58