Hospedar domínio primário de uma subpasta

Hospedar domínio primário de uma subpasta

Estou tendo problemas para fazer um subdiretório atuar como public_html para meu domínio principal e obter uma solução que funcione com os subdiretórios desse domínio também.

Minha hospedagem me permite hospedar vários sites, todos funcionando perfeitamente. Eu configurei uma subpasta na minha~/public_html/diretório chamado/domínios/, onde crio uma pasta para cada site separado. por exemplo

  • público_html
    • domínios
      • siteone
      • site dois
      • sitetrês
      • ...

Isso mantém meus sites bonitos e organizados. O único problema foi fazer com que meu “domínio principal” se encaixasse neste sistema. Parece que meu domínio principal está de alguma forma vinculado à minha conta (ou ao Apache, ou algo assim), então não posso alterar a "raiz do documento" deste domínio. Posso definir as raízes do documento para quaisquer outros domínios ("Domínios Adicionais") que adicionar no cPanel sem problemas. Mas o domínio principal é diferente.

Disseram-me para editar o arquivo .htaccess, para redirecionar o domínio principal para um subdiretório. Isso pareceu funcionar muito bem e meu site funciona bem na página inicial/índice.

O problema que estou tendo é que se eu tentar navegar no meu navegador dirá a pasta de imagens (só por exemplo) do meu site principal, assim:

www.seudominio.com/images/

então parece ignorar o redirecionamento e mostra todo o diretório do servidor na url, assim:

www.seudominio.com/domains/seudominio/images/

Na verdade, ele ainda mostra a página correta "Índice de/imagens" e mostra a lista de todas as minhas imagens.

Aqui está um exemplo do meu arquivo .htaccess que estou usando:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteCond %{REQUEST_URI} !^/domains/yourmaindomain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /domains/yourmaindomain/$1

RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ domains/yourmaindomain/index.html [L]

Este arquivo htaccess parece correto? Eu só preciso fazer com que meu domínio principal se comporte como um domínio adicional e seus subdiretórios sigam as regras de redirecionamento.

Responder1

Eu chamaria DirectorySlashisso de ladino.

  1. Isso só acontece com diretórios?
  2. Isso só acontece quando não há barra final (ou seja, /imagesvai para /domain/yourdomain/images/, mas /images/está tudo bem)?

Nesse caso, existem 3 opções:

  1. Certifique-se de que todos os links tenham a barra final ( /)
  2. Definir DirectorySlash off(levará você a páginas/diretórios duplos, do ponto de vista de SEO, não é uma boa opção).
  3. Tente adicionar o a RewriteRulelogo antes do último index.html: (pensado na hora, não sei se vai funcionar)

    RewriteCond %{REQUEST_FILENAME} -d  
    RewriteCond %{REQUEST_FILENAME} !/$  
    RewriteRule ^(.*) $1/  
    

Responder2

Um dos seus problemas é o seu Regex: você énãoescapando do seu ponto. Isso significa que será considerado "qualquer caractere" em vez de apenas um ponto. Em vez de

^(www.)?domain.tld$

você precisará ter

^(www\.)?domain\.tld$

informação relacionada