2010-11-13 4 views
0

Est-il possible de créer un dossier transparent dans l'URL comme dans l'exemple suivant: example.com/test/ changé example.com/utilisant mod_rewrite pour changer de chemin url

en utilisant mod_rewrite? J'aime avoir des dossiers pour l'organisation, mais je veux une bonne url propre.

+0

Changé comment, à l'aide d'une redirection ou un réécriture interne? Pouvez-vous décrire ce qui est supposé se produire lorsqu'un utilisateur entre l'URL et l'autre? –

+0

Voulez-vous dire servir un fichier comme 'root_folder/test/page.html' en tant que' example.com/page.html'? –

+0

@ réécriture interne Pekka serait le meilleur @ Alberto-exactement –

Répondre

2

Vous pouvez y parvenir avec mod_rewrite mettre quelque chose comme ça dans le fichier .htaccess de votre dossier racine:

RewriteEngine on 

# the first condition is for avoiding an infinite loop 
RewriteCond %{REQUEST_URI} !^/test/.* 
RewriteRule ^(.*)$ /test/$1 

Cela va rediriger vers /test/ toutes les pages/fichiers demandés à partir /.

Si vous ne souhaitez rediriger certains fichiers utilisent règle plus spécifique (s):

RewriteEngine on 

# the condition is for avoiding an infinite loop 
RewriteCond %{REQUEST_URI} !^/test/.* 
# redirecting only images files and files that start with "doc" 
RewriteRule ^(.*\.(jpg|png|gif))$ test/$1 [L] 
RewriteRule ^(doc.*)$ test/$1 [L] 

Ou si vous souhaitez utiliser différents dossiers:

RewriteEngine on 

# the condition is for avoiding an infinite loop 
RewriteCond %{REQUEST_URI} !^/images/.* 
RewriteCond %{REQUEST_URI} !^/docs/.* 
# redirecting only images files and files that start with "doc" 
RewriteRule ^(.*\.(jpg|png|gif))$ images/$1 [L] 
RewriteRule ^(doc.*)$ docs/$1 [L]