Rediriger tous les sous-répertoires mais pas les parents

Je souhaite rediriger tous les dossiers après un sous-répertoire:

example.com/sub/sub2/some-place
example.com/sub/sub3/some-place
example.com/sub/subY/some-place

à un sous-domaine:

sub.example.com/sub2/some-place
sub.example.com/sub3/some-place
sub.example.com/subY/some-place

C'est la règle que j'utilise et ça marche:

RewriteRule ^sub/(.*)$ http://sub.example.com/$1 [R=302,L]

Cependant, je ne veux pas que le répertoire example.com/sub/ soit redirigé.

Les visites des utilisateurs example.com/sub/ devraient rester à/sub / Les visites d'utilisateur example.com/sub/ANYTHINGELSE doivent être redirigées vers sub.example.com/ANYTHGINELSE

Merci d'avance.

EDIT: Question: Comment ajouter une exclusion à la règle? Exemple: je veux

example.com/sub/sub2/some-place 
example.com/sub/sub3/some-place 
example.com/sub/subY/some-place 

rediriger comme ci-dessus, mais

example.com/sub/thispageshouldnotredirect 

ne PAS rediriger. J'ai essayé d'ajouter cette règle:

RewriteCond %{REQUEST_URI} !^/thispageshouldnotredirect 

EDIT # 2: Cela fonctionne pour moi actuellement:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/sub/thispageshouldnotredirect/?$
RewriteRule ^sub/(.+)$ http://sub.example.com/$1 [R=302,L]
1

1 Réponses

Utilisez . + à la place de . * pour vous assurer qu'il y a 1 caractères de plus après /sub/:

RewriteRule ^sub/(.+)$ http://sub.example.com/$1 [R=302,L]
2
ajouté
cela fonctionne très bien l'apprécier. Question: Comment ajouter une exclusion à la règle? Exemple: Je veux example.com/sub/sub2/some-place example.com/sub/sub3/some-place example.com/sub/subY/some-place pour rediriger comme ci-dessus mais `example.com/sub/thispageshouldnotredirect ne PAS rediriger. J'ai essayé d'ajouter cette règle: RewriteCond% {REQUEST_URI}! ^/Thispageshouldnotredirect
ajouté l'auteur whoback, source
toute contribution à ce sujet? Merci!
ajouté l'auteur whoback, source
Question éditée et répond à ma 2ème question. Pouvez-vous confirmer que c'est correct/y a-t-il une meilleure mise en œuvre? Merci!
ajouté l'auteur whoback, source
Appréciez-le. Avez-vous des liens vers des ressources où je peux en apprendre plus sur ce genre de choses? Merci encore pour votre aide!
ajouté l'auteur whoback, source
Oh j'ai raté ton précédent commentaire. Difficile de lire ce long commentaire. Pouvez-vous modifier la question et expliquer clairement cette nouvelle exigence afin que je puisse modifier ma réponse en conséquence.
ajouté l'auteur anubhava, source
Avec la légère modification RewriteCond% {REQUEST_URI}! ^/Sub/thispageshouldnotredirect (/ | $) est la condition correcte qui ignorera tout en commençant par /sub/thispageshouldnotredirect de cette réorienter.
ajouté l'auteur anubhava, source
Vous êtes le bienvenu. Je n'utilise que httpd.apache.org/docs/current/rewrite/intro.html pour référence. Mais beaucoup de choses que j'ai apprises sur SO lui-même à partir d'autres réponses.
ajouté l'auteur anubhava, source