crie subdomínios usando .htaccess no Plesk

1

Estou tentando mapear vários subdomínios para diretórios na minha ROOT usando .htaccess (é 'mapear' a palavra certa para isso?)

O servidor usa o Plesk, que é algo com que eu não estou familiarizado (o cPanel lidaria com isso automaticamente). Todos os subdomínios foram adicionados como "Aliases de domínio", então tudo o que preciso fazer agora é apontar para o diretório correto.

por exemplo: 1. i.domain.com - > domínio.com/i/ 2. js.domain.com - > domínio.com/js/ 3. css.domain.com - > domain.com/css /

Eu tentei muitos snippets que encontrei no Google e especificamente o Stack Overflow. Este é o código que mais me pegou trabalhando para (1), mas inexplicavelmente falhando por (2) + (3) ainda apontando para a ROOT sem procurar em um diretório.

RewriteCond %{HTTP_HOST} ^i\.domain\.co\.uk$ [NC]
RewriteCond %{HTTP_HOST} ^js\.domain\.co\.uk$ [NC]
RewriteCond %{HTTP_HOST} ^css\.domain\.co\.uk$ [NC]
RewriteRule (.*) %1/$1 [L]

Eu confesso que não estou particularmente no .htaccess ou como o DNS funciona, PHP é o meu jogo.

Qualquer ajuda, muito bem-vinda.

    
por AndyH 24.09.2011 / 15:09

2 respostas

1

Bem, o Plesk lida com as coisas de maneira diferente, então você tem que fazer as coisas do jeito Plesk;)

A raiz do documento de um subdomínio no Plesk será algo como

/var/www/vhosts/domain.com/subdomains/subdomain/httpdocs

Como na sua pergunta, para apontar a.domain.com para domain.com/a, você não precisa do .htaccess. Basta alterar o DocumentRoot do seu subdomínio a.domain.com apontando para /var/www/vhosts/domain.com/httpdocs/a. Para fazer isso, você precisa adicionar um vhost.conf ao diretório conf do subdomínio com as novas configurações do DocumentRoot.

Crie um arquivo chamado vhost.conf com o seguinte conteúdo,

DocumentRoot /var/www/vhosts/domain.com/httpdocs/a

Agora, envie este arquivo para a pasta /var/www/vhosts/domain.com/subdomains/subdomain/conf .

Agora, execute o seguinte comando para incluir o conf personalizado junto com os outros httpd includes.

/usr/local/psa/admin/bin/websrvmng -a

Reinicie o apache e confirme se o subdomínio está agora servindo as páginas do local correto.

PS: Às vezes, a versão do Plesk é importante (para os comandos que você executa), então sinta-se à vontade para perguntar se você tem algum problema para configurar isso.

    
por 26.09.2011 / 01:37
0

Obrigado pela sua resposta SparX - Tenho certeza de que é preciso saber claramente suas coisas.

Meu host me aconselhou a não usar a estrutura de diretório de subdomínio padrão no Plesk, pois precisava de permissões RWX na maioria dos subdomínios do domínio principal document_root.

Isso significa que eu tive que remover praticamente todas as restrições do open_basedir acima de /var/www/vhosts/domain.com / . Eu não sabia que estava causando alguns problemas de segurança em massa - a ingenuidade de desenvolvedores PHP!

Então eles recomendaram que eu adicionasse meus subdomínios em "aliases de domínio", movesse os diretórios para o document_root do domínio principal e usasse o .htaccess para reescrever os pedidos.

Depois de um fim de semana cheio de puxões de cabelo, encontrei essa resposta no estouro de pilha: link

O que me leva a usar o seguinte no .htaccess do meu domínio principal:

# Internal rewrite for the image subdomain
#  - Match the subdomain exactly
RewriteCond %{HTTP_HOST} ^i\.mydomain\.com$
#  - Check to see if the rewrite already happened (prevent
#    infinite loop of internal rewrites)
RewriteCond %{REQUEST_URI} !^/i(/.*|$)
#  - Rewrite the URL to the subdirectory
RewriteRule ^(.*) /i/$1 [L]

Isso resolveu o domínio i.mydomain.com, então eu apenas o repliquei para c.domain.com e js.domain.com

    
por 26.09.2011 / 11:20