réécrire un nom de dossier à l'aide .htaccess
Question
Je me demande Que c'est possible d'utiliser .htaccess
de réécrire un nom de 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" est pas un dossier plutôt qu'un nom
est Ok ici un plan étape par étape:
- Types d'utilisateur
www.site.com/folder1/login.php
- L'URL doit réécrire et non rediriger l'URL vers
www.site.com/apple/login.php
Cela signifie que apple
est juste un nom et non un répertoire. Tout le code devrait tout juste de folder1. Acutally pomme doit être juste un alias pour folder1
. Je ne peux pas renommer folder1
à Apple
. Je voudrais juste à cet effet réécrire folder1
à apple
.
La solution
mod_rewrite ne peut réécrire / redirect demandé URIs. Donc, vous devez demander /apple/…
pour l'obtenir réécrite à un /folder1/…
correspondant.
Essayez ceci:
RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1
Cette règle réécrira toute demande qui commence par le chemin URI /apple/…
interne /folder1/…
.
Modifier Comme vous cherchez réellement pour l'inverse:
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]
Cette règle est conçue pour fonctionner avec l'autre règle ci-dessus. Les demandes de /folder1/…
seront redirigés vers l'extérieur /apple/…
et demandes de /apple/…
seront ensuite réécrites en interne retour à /folder1/…
.
Autres conseils
essayer:
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
Si le dossier que vous souhaitez apparaître dans l'URL est dans la première partie de la déclaration - c'est ce qu'il correspondra à contre et la deuxième partie « réécritures » à votre dossier existant. le drapeau [NC] signifie qu'il ne tient pas compte des différences de cas par exemple Apple / sera toujours en avant.
Voir ici pour un tutoriel: http://www.sitepoint.com/ article / url guide réécriture /
Il y a aussi un utilitaire de test agréable pour windows, vous pouvez télécharger ici: http://www.helicontech.com/download/rxtest.zip Juste à noter pour le testeur, vous devez laisser le nom de domaine - de sorte que le test serait contre /folder1/login.php
pour rediriger de / folder1 à / Apple essayez ceci:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
pour rediriger puis réécrire simplement combiner ci-dessus dans le fichier htaccess:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]