Actualmente estoy usando alojamiento compartido y no tengo forma de poner mis archivos fuera de la carpeta "public_html".
Para solucionar esto, quiero volver a escribir mi sitio "raíz" en un subdirectorio usando la siguiente secuencia de comandos en un archivo .htaccess:
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule ^(.*)$ /subdir/$1
Lo que funciona muy bien, excepto cuando navego a www.example.com/subdir/. Esa url no se redirige a ningún lado, simplemente muestra el subdirectorio. Este es un problema para las URL relativas y tal.
¿Hay alguna manera de continuar reescribiendo mi raíz en un subdirectorio mientras también reescribimos? www.example.com/subdir/ a www.example.com?
Respuestas
1 para la respuesta № 1Puedes usar esta regla en root .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subdir/ [NC]
RewriteRule ^(.*)$ subdir/$1 [L]
Y usa esta regla en /subdir/.htaccess
:
RewriteEngine On
RewriteBase /subdir/
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{THE_REQUEST} /subdir/(S*)s
RewriteRule ^ /%1? [R=302,L,NE]