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
- ...
- domínios
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 DirectorySlash
isso de ladino.
- Isso só acontece com diretórios?
- Isso só acontece quando não há barra final (ou seja,
/images
vai para/domain/yourdomain/images/
, mas/images/
está tudo bem)?
Nesse caso, existem 3 opções:
- Certifique-se de que todos os links tenham a barra final (
/
) - Definir
DirectorySlash off
(levará você a páginas/diretórios duplos, do ponto de vista de SEO, não é uma boa opção). Tente adicionar o a
RewriteRule
logo antes do últimoindex.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$