Alojar el dominio principal desde una subcarpeta

Alojar el dominio principal desde una subcarpeta

Tengo problemas para hacer que un subdirectorio actúe como public_html para mi dominio principal y para obtener una solución que funcione también con los subdirectorios de ese dominio.

Mi alojamiento me permite alojar varios sitios y todos funcionan muy bien. He configurado una subcarpeta debajo de mi~/public_html/directorio llamado/dominios/, donde creo una carpeta para cada sitio web por separado. p.ej

  • público_html
    • dominios
      • sitio web uno
      • sitio webdos
      • sitio webtres
      • ...

Esto mantiene mis sitios agradables y ordenados. El único problema fue lograr que mi "dominio principal" encajara en este sistema. Parece que mi dominio principal está de alguna manera vinculado a mi cuenta (o a Apache, o algo así), por lo que no puedo cambiar la "raíz del documento" de este dominio. Puedo definir las raíces del documento para cualquier otro dominio ("Dominios adicionales") que agrego en cPanel sin problema. Pero el ámbito principal es diferente.

Me dijeron que editara el archivo .htaccess para redirigir el dominio principal a un subdirectorio. Esto pareció funcionar muy bien y mi sitio funciona bien en su página de inicio/índice.

El problema que tengo es que si intento navegar en mi navegador para decir la carpeta de imágenes (solo por ejemplo) de mi sitio principal, así:

www.tudominiodominio.com/images/

entonces parece ignorar la redirección y muestra el directorio completo del servidor en la URL, así:

www.tudominioprincipal.com/dominios/tudominioprincipal/images/

En realidad, todavía muestra la página "Índice de /imágenes" correcta y muestra la lista de todas mis imágenes.

Aquí hay un ejemplo de mi archivo .htaccess que estoy 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 archivo htaccess parece correcto? Solo necesito hacer que mi dominio principal se comporte como un dominio adicional y sus subdirectorios cumplan con las reglas de redireccionamiento.

Respuesta1

Yo llamaría a un pícaro DirectorySlashpor eso.

  1. ¿Solo sucede con los directorios?
  2. ¿Sólo sucede cuando no hay una barra diagonal (es decir , /imagesva a /domain/yourdomain/images/pero /images/está bien)?

En ese caso, hay 3 opciones:

  1. Asegúrese de que todos los enlaces tengan la barra diagonal ( /)
  2. Establecer DirectorySlash off(lo llevará a páginas/directorios dobles, desde el punto de vista de SEO no es agradable).
  3. Intente agregar a RewriteRulejusto antes del último index.html: (pensado sobre la marcha, no sé si funcionará)

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

Respuesta2

Uno de tus problemas es tu expresión regular: estásnoescapando de tu punto. Eso significa que se tomará como "cualquier carácter" en lugar de simplemente un punto. En lugar de

^(www.)?domain.tld$

necesitarás tener

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

información relacionada