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:

  1. Utilisateur types www.site.com/folder1/login.php
  2. 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 folder1Apple. À cet effet, je voudrais juste réécrire folder1apple.

22
demandé sur Mihai Iorga 2009-08-12 11:40:10

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/….

36
répondu Gumbo 2009-08-12 09:05:47

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]
5
répondu Josh 2009-08-12 08:47:51