Cargar un subdirectorio en el index / con htaccess

Instalar web en subdirectorio pero cargarla en el index

Aveces por ciertas razones necesitamos tener nuestra página web en un subdirectorio y no en el public_html, pero necesitamos que el contenido se vea en el index, ejemplo:

/home/skamasle/public_html -> este es el index skamasle.com

Pero por algún motivo queremos que nuestra web este en:

/home/skamasle/public_html/blog , pero que al entrar a skamasle.com se cargue el contenido de blog sin que aparezca la url skamasle.com/blog.

Pues bien, podemos hacerlo con htaccess de esta manera:

RewriteCond %{HTTP_HOST} ^skamasle.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.pruebas.skamasle.com$
RewriteCond %{REQUEST_URI} !blog/
RewriteRule (.*) /blog/$1 [L]

Otras soluciones

Por la web encontramos otras soluciones como esta:

RewriteEngine On

# Map http://www.example.com to /site.
RewriteRule ^$ /site/ [L]

# Map http://www.example.com/x to /site/x unless there is a x in the web root.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/site/
RewriteRule ^(.*)$ /site/$1

# Add trailing slash to directories within /site
# This does not expose the internal URL.
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule ^site/(.*[^/])$ http://www.example.com/$1/ [R=301] 

Y una larga discusión sobre el tema en este enlace: http://www.webmasterworld.com/apache/4095623.htm

Otra variante en que encontramos en serverfault:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?site.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdir/$1
RewriteCond %{HTTP_HOST} ^(www.)?site.com$
RewriteRule ^(/)?$ subdir/index.php [L]

En este enlace: http://stackoverflow.com/questions/990392/htaccess-rewrite-to-redirect-root-url-to-subdirectory

También en el foro de drupal se habla del asunto:

Drupal instalado en subdirectorio pero cargando en el index

https://drupal.org/node/144643
Options -Indexes
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]
RewriteRule .* http://www.mysite.com/	[L,R=301]
RewriteRule ^$ drupal/index.php [L]
RewriteCond %{DOCUMENT_ROOT}/drupal%{REQUEST_URI} -f
RewriteRule .* drupal/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* drupal/index.php?q=$0 [QSA]
Maks Skamasle (123 Posts)

Maks Skamasle, sysadmin, fotógrafo aficionado y me gusta el tomar té por las madrugadas cuando no hay ruido ni sol.