Je suis en train de nettoyer la structure de mon répertoire de mon domaine (malheur à moi pour la configuration du contenu de l'URL racine dans le répertoire racine!) Et avez besoin d'une idée de la manière d'utiliser Rewriterule correctement.
je veux domain.tld em> utiliser domaine.tld / subdirectory / em> mais apparaît toujours comme domaine.tld em> dans l'URL. p> Le redirectMatch fonctionne bien. Malheureusement, T semble que le dernier rériter devrait em> suffisamment, mais ce n'est pas le cas. L'ancienne configuration de contenu dans le répertoire racine apparaît toujours. P> Qu'est-ce que je manque ici? P> Mise à jour: Résolu P> P> que je ne suis pas assez expérimenté avec le .htaccess / Apache pour pouvoir expliquer pourquoi. P> J'avais: p> supprimer celui-ci : p> Alors maintenant ma question est: pourquoi est-ce? EM> P> P>
4 Réponses :
la partie d'URI dans un donc pour correspondre à Supplément: Enfin, vous avez: Rewriterule code> ne contient pas la barre oblique précédente. P>
http://example.com/ code> vous devez utiliser rewriterule ^ $ code> où rédreule ^ / $ code> correspondrait théoriquement http://example.com// code> (note double barre oblique). P>
? $ code> à la fin n'a aucun sens, car cela ajouterait une querystring avec un paramètre vide $ p>. p>.
RewriteRule ^ $ / SubDirectory / [L, QSA] Code> P>
Les deux règles sont Celui-ci Si vous placez la même règle dans .htaccess fort>, vous devez supprimer de la barre oblique ( parce qu'il est par rapport à Le dossier actuel em>): p> supplémentaire, ? $ Code> IT cible URL PARL. Pas besoin de $ code> du tout. Si vous terminez votre URL avec ? Code> Ceci indique à Apache de ne pas transférer la chaîne de requête sur une nouvelle URL (goutte de requête de goutte complètement). P> [QSA] < / CODE> Le drapeau est uniquement requis si vous manipulez avec la chaîne de requête (? code> dans URL cible) et que vous souhaitez toujours que votre chaîne de requête actuelle soit annexée à l'URL de la nouvelle construction. Cela signifie que dans la présente règle rédreule ^ $ / subdirectory / [l, qsa] code> le drapeau [qsa] code> ne fait rien du tout et peut être supprimé en toute sécurité. P> p>
Essayez ceci:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/subdirectory/
# REWRITES ALL URLS
# [REPLACE "domain" WITH THE ACTUAL DOMAIN,
# WITHOUT THE TLD (.com, .net, .biz, etc)]
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.
# REWRITE ALL THOSE TO subdirectory
RewriteRule ^(.*)$ /subdirectory/$1 [L]
J'ai essayé la solution mais dans mon cas supprime le / dossier /, mais montrant l'ancien site (www.site.it) et non le www.site.it/folder/ avec "dossier" supprimé ... J'ai copié et collé le même code mais ne fonctionne pas dans mon cas :( J'ai ouvert un nouveau sujet: