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: