Mod ReWrite Catch-All Subdomain

1

Basicamente, quero que *.domain.com extraia domain.com/*/ (não redireciona).

Eu entrei na seção de subdomínios do cPanel e configurei um curinga para este domínio. Parece estar resolvendo corretamente, ou seja, * .domain.com está trazendo o domínio.com.

Eu criei agora um arquivo htaccess no diretório public_html contendo:

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) %2/$1 [L]

O erro que estou recebendo é '500 Internal Server Error', alguma idéia?

    
por zuk1 19.06.2009 / 15:10

2 respostas

2

Consulte esta pergunta do StackOverflow: " Crie subdomínios na mosca com .htaccess "

Veja as respostas sobre a questão, especificamente este link que tem exemplos que devem funcionar na sua situação.

Há alguns problemas que a postagem do Webmasterworld aborda, incluindo recursão de subdomínio, pois o .htaccess também afeta seus subdiretórios em sua principal raiz www.

O código final é assim:

RewriteBase /

#### URL Rewrite Handler for Subdomains (by Randall Krause) ####

RewriteCond %{ENV:REDIRECT_SUBDOMAIN} ="" 
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.mydomain\.org\.?(:80)?$ [NC] 
RewriteCond %{DOCUMENT_ROOT}/subdomains/%1 -d 
RewriteRule ^(.*) subdomains/%1/$1 [E=SUBDOMAIN:%1,L] 
RewriteRule ^ - [E=SUBDOMAIN:%{ENV:REDIRECT_SUBDOMAIN},L] 

Se você quiser ver quais são os erros do código acima (o que está criando o erro 500), verifique seu error_log. Meu palpite é que isso está causando recursão.

    
por 19.06.2009 / 16:25
0

Eu usaria mod_vhost_alias . Por exemplo:

VirtualDocumentRoot /usr/local/apache/vhosts/%-3+

Mapearia solicitações da seguinte forma:

  http://dom1.example.com/      =>  /usr/local/apache/vhosts/dom1/
  http://foo.dom2.example.com/  =>  /usr/local/apache/vhosts/foo.dom2/
  etc...

Você pode, naturalmente, personalizar a maneira como o mapeamento funciona. Veja a documentação para todos os detalhes e mais exemplos.

    
por 20.06.2009 / 00:04