Como redirecionar subdomínio para domínio com subdomínio como parâmetro

2

Eu gostaria de redirecionar meu subdomínio curinga para meu domínio principal usando o subdomínio como um parâmetro GET no URL usando .htaccess .

Exemplo do que gostaria de acontecer:

billy.example.com

redireciona para

www.example.com/profile?user_name=billy

Aqui está a regra atual que eu reuni com base em outras respostas neste site:

RewriteCond %{HTTP_HOST} ^(.*).example.com
RewriteRule ^(.*)$ http://www.example.com/shop?user_name=%1 [R,L]

No entanto, quando o redirecionamento acontece, recebo o seguinte URL com um erro de "Redirecionar loop":

www.example.com/profile?user_name=www

Eu já vi isso respondendo de várias maneiras neste site, mas infelizmente nenhum deles funcionou para mim.

(Estou usando o PHP e configurei * como um subdomínio no meu painel de hospedagem.)

    
por justinl 19.09.2009 / 04:53

2 respostas

0

Depois de tentar resolver isso usando .htaccess e falhando, acabei usando PHP para fazer a análise de URL para mim. Para aqueles que desejam ver o que eu fiz:

$host = $_SERVER['HTTP_HOST'];
$subdomain = str_replace('.example.com', '', $host);
if($subdomain != 'www')
    header("Location: http://www.example.com/shop?user_name=".$subdomain);
    
por 19.09.2009 / 05:26
2

Seu loop de redirecionamento está acontecendo porque você está redirecionando tudo (inclusive www.example.com). Talvez tente algo como:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$ [NC]
RewriteRule ^/(.*)$ http://www.example.com/shop?user=%1 [L,R=301]

Isso só deve ser feito quando você estiver em algo diferente de www.example.com .

    
por 19.09.2009 / 07:15