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]