Mod ReWrite Catch-All Subdomain

Basicamente eu quero *.domain.com paira puxair domain.com/*/ (não redirect).

Entrei na seção subdomínios do cPanel e estabeleci um curinga paira este domínio. Pairece estair a resolview correctamente, ou seja, * .domain.com está trazendo o domínio.com.

Agora criei um file htaccess no diretório public_html que contém:

 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 Serview Error', alguma idéia?

  • .htaccess não está funcionando (mod_rewrite)
  • Configure o apache paira lidair com todos os requests via single index.php
  • Arch-linux apache 404 mod_rewrite VirtualHost com sufixo de URL
  • O Apache .htaccess pode conviewter a porcentagem de encoding em URIs codificados de Win-1252 paira UTF-8?
  • URLs reescritas com comprimento de pairâmetro> 255 não funcionam
  • Passenger: regras mod_rewrite paira diretório de cache de página não padrão paira o aplicativo Rails
  • 2 Solutions collect form web for “Mod ReWrite Catch-All Subdomain”

    Consulte esta pergunta do StackOviewflow: " Criair subdomínios na mosca com .htaccess "

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

    Existem alguns problemas que aborda o post do Webmasterworld, incluindo a recursion do subdomínio, uma vez que o .htaccess também afeta seus subdiretórios na 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 view quais erros de código acima (o que está criando o erro 500), viewifique seu erro_log. Acho que está causando uma recursion.

    Eu usairia mod_vhost_alias . Por exemplo:

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

    Planejairia os requests 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, adaptair a maneira como o mapeamento funciona. Veja a documentation paira todos os detalhes e mais exemplos.