réécrire un nom de dossier en utilisant.htaccess
je me demande si il est possible d'utiliser .htaccess
pour réécrire le nom d'un dossier.
Ce que je veux dire est ceci.
disons que j'ai une url comme:
www.site.com/folder1/page.php
Maintenant, je veux réécrire l'url (par exemple)
www.site.com/apple/page.php
Le folder1 est un dossier existant sur mon espace web.
important: la "pomme" n'est pas un dossier plutôt qu'un nom!
Ok, voici un plan étape par étape:
- Utilisateur types
www.site.com/folder1/login.php
- l'url doit réécrire et ne pas rediriger l'url vers
www.site.com/apple/login.php
Cela signifie que apple
est juste un nom et pas un répertoire. Tout le code devrait venir du folder1. Acutally apple devrait simplement être un alias pour folder1
. Je ne peux pas juste de renommer folder1
Apple
. À cet effet, je voudrais juste réécrire folder1
apple
.
2 réponses
mod_rewrite ne peut réécrire / rediriger que L'URIs demandé. De sorte que vous devez demander /apple/…
pour l'obtenir, il réécrit à un correspondant /folder1/…
.
essaye ceci:
RewriteEngine on
RewriteRule ^apple/(.*) folder1/
cette règle va réécrire toutes les requêtes qui commencent par le chemin URI /apple/…
interne /folder1/…
.
Modifier Comme vous sont à la recherche de l'inverse:
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/ [L,R=301]
Cette règle est conçue pour fonctionner avec l'autre règle ci-dessus. Les demandes de /folder1/…
sera redirigé vers /apple/…
et les demandes de /apple/…
va alors être réécrite en interne arrière /folder1/…
.
essaie:
RewriteRule ^/apple(.*)?$ /folder1 [NC]
où le dossier que vous voulez voir apparaître dans l'url se trouve dans la première partie de la déclaration - c'est ce contre quoi il va correspondre et la seconde partie 'le réécrit' à votre dossier existant. le drapeau [NC] signifie qu'il ignorera les différences de cas par exemple Apple/ will still forward.
Voir ici pour un tutoriel: http://www.sitepoint.com/article/guide-url-rewriting/
il y a aussi un utilitaire de test pour windows que vous pouvez téléchargez-le ici: http://www.helicontech.com/download/rxtest.zip Juste à noter pour le testeur, vous devez laisser le nom de domaine - si le test serait contre /dossier1/login.php
rediriger /dossier1 /apple essayez ceci:
RewriteRule ^/folder1(.*)?$ /apple [R]
pour rediriger puis réécrire, il suffit de combiner ce qui précède dans le fichier htaccess:
RewriteRule ^/folder1(.*)?$ /apple [R]
RewriteRule ^/apple(.*)?$ /folder1 [NC]