2015-05-01 15 views
5

Sto tentando di nascondere una directory users dell'URL (ad esempio :): meusite.com.br/users/teste ma fino ad ora non riuscita. In questo modo, accedendo a meusite.com.br/teste mostra il contenuto all'interno della cartella teste e, se si accede all'URL meusite.com.br/users/teste, lo /users/ è stato rimosso e ha esibito solo lo meusite.com.br/teste.Nascondere una directory con htaccess

ho provato:

RewriteCond %{REQUEST_URI} !^/users 
RewriteRule (.*) /users/$1 [QSA,L] 

ma non ci sono riuscito. Ho anche provato:

RewriteCond %{REQUEST_URI} !^/users 
RewriteRule ^/?([^/]+)$ /users/$1 [L] 

ma non funzionante.

Per una migliore comprensione, ne consegue parte della struttura delle cartelle del sito:

├── users 
| ├── teste 
| | └── index.html 
| └── outroteste 
|  └── index.html 
├── .htaccess 
└── index.php 

Come il mio file 'htaccess` è già:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    # Rewrites the requested http to https. 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

    # Hide GET variables link. 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^posts/(.*) posts.php?p=$1 
</IfModule> 

spero che possiate aiutare.

risposta

2

È possibile utilizzare la regola di nascondere users appena al di sotto di regole di redirezione:

DirectorySlash Off 
RewriteEngine On 

# Rewrites the requested http to https. 
RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301] 

# add a trailing slash to directories 
RewriteCond %{DOCUMENT_ROOT}/users/$1/ -d 
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=302,NE] 

RewriteCond %{THE_REQUEST} /users/(\S*)\s [NC] 
RewriteRule^/%1 [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?((?!users/).*)$ users/$1 [L,NC] 

# Hide GET variables link. 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^posts/(.*) posts.php?p=$1 [L,QSA] 

Ma basta tenere a mente che inoltrerà tutto per /users/ rendendo così la vostra ultima regola defunta.

+0

quando si digita 'meusite.com.br/users/teste' rimane lo stesso, e all'accesso' meusite.com.br/teste' riscrive per 'meusite.com.br/users/teste' e ho bisogno l'esatto contrario. Se accedi a 'meusite.com.br/users/teste' riscrivi su' meusite.com.br/teste'. Grazie fratello e scusa ancora per il mio pessimo inglese. – Igor

+0

Se accedo a 'meusite.com.br/users/teste' riscrive correttamente in' meusite.com.br/teste' ma non appare nulla e si verifica il seguente messaggio * "Questa pagina web ha un ciclo di reindirizzamento." * E se Accedo a 'meusite.com.br/teste' che riscrive per' meusite.com.br/users/teste' e visualizza lo stesso messaggio. (in questo caso non dovrebbe riscrivere). – Igor

+1

Verifica un altro aggiornamento. Dovresti inserire 'meusite.com.br/teste /' con una barra finale poiché 'teste' è una directory. Aprirà internamente 'meusite.com.br/users/teste /' – anubhava