2010-04-11 15 views
8

Creo que esta es una pregunta bastante simple.Modifique Reescribir Ocultar Carpeta

Cómo reescribir un apache para ocultar una carpeta.

EX: www.website.com/pages/login.php a www.website.com/login.php~~V~~singular~~3rd

o www.website.com/pages/home.php a www.website.com/~~V~~3rd home.php

La carpeta siempre debe estar oculta. gracias

Respuesta

12

Supongo que lo que quiere es que el navegador solicite /home.php pero el servidor realmente use el archivo ubicado en /pages/home.php, ¿verdad? De ser así, esto debería funcionar:

Asegúrese de que el módulo apache mod_rewrite esté instalado. A continuación, utilizar algo como esto en su configuración de Apache, de configuración de host virtual, o (menos deseable) archivo .htaccess:

RewriteEngine On 
RewriteRule ^/(.*)$ /pages/$1 

Las reglas usan expresiones regulares, por lo que puede que desee ver en una referencia en ese tema si no estás seguro. Lea el manual para obtener más información sobre otras directivas (RewriteCond puede ser muy útil) u opciones de reglas.

0

Si tu ejemplo refleja realmente los archivos que necesita, a continuación, en su archivo .htaccess:

#Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^/pages/(.+)\.php $1\.php [NC, L] 

Además, si el directorio tiene permiso de lectura, no puede ser, en realidad "oculta". Supongo que quiere decir que ya no aparece en la url.

+1

Esto es lo que tuve al principio, también. Pero esto significa que el usuario vería /pages/home.php en la barra de direcciones, mientras que el servidor mostraría /home.php. Después de repensar, creo que OP quiere lo opuesto ... – grossvogel

+0

@grossvogel - tienes razón - volví a leer su pregunta más de cerca. – TMG

8

Sé que la publicación original aquí era de hace un par de años, pero ha estado en primer lugar en el motor de búsqueda, por lo que quizás esto ayude a otros a ocultar un nombre de carpeta en la URL.

No es exactamente lo que el póster original quería, pero en la misma línea.

RewriteCond %{HTTP_HOST} ^mydomainname\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.mydomainname\.com$ 
RewriteCond %{REQUEST_URI} !^/subfoldername/ 
RewriteRule (.*) /subfoldername/$1 

El ejemplo anterior podría redirigir cualquier solicitud de mydomainname.com o www.mydomainname.com al directorio nombreDeSubcarpeta en el directorio raíz para el dominio y el nombre de la subcarpeta no aparecería en la URL.