URL .htaccess Réécrire Sous-répertoire
-
21-08-2019 - |
Question
Quelle est la meilleure méthode pour réécrire quoi que ce soit ci-dessous "/ some / subdir" à "/ some / projets / subdir" comme de ceci:
http://www.mydomain.com/some/subidr/test/
... à ceci:
http://www.mydomain.com/some/subdir/projects/test/
J'ai trouvé un question similaire affichée, mais la solution ne semblent travailler dans mon cas. Ma tentative actuelle jusqu'à présent (ce qui ne semble pas fonctionner):
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/projects/.*$
RewriteRule ^(.*)$ /projects/$1 [L]
EDIT:. J'ai oublié de mentionner le fichier .htaccess devrait être assis à l'intérieur / some / subdir que je n'ai pas accès en écriture à la racine web du serveur
La solution
Ceci est la solution que je dois travailler enfin:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/some/subdir/projects/.*$
RewriteRule ^(.*)$ /some/subdir/projects/$1 [L]
Autres conseils
Essayer cette règle dans votre fichier de configuration .htaccess à la racine de documents de votre serveur:
RewriteEngine on
RewriteRule !^some/subdir/projects(/|$) some/subdir/projects%{REQUEST_URI} [L]
Comme vous voulez utiliser cette règle dans votre répertoire /some/subdir/
, changer la règle comme suit:
RewriteRule !^projects(/|$) projects%{REQUEST_URI} [L]
Et si vous souhaitez rediriger toutes les demandes de /some/subdir/projects/
foobar
<=> <=> , mettez cette règle au-dessus du précédent mentionné:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /some/subdir/projects[/?\s]
RewriteRule ^some/subdir/projects/?([^/].+)?$ /some/subdir/$1 [L,R=301]
Je voudrais utiliser ceci:
RewriteEngine On
RewriteRule ^(/some/subdir)/(.*)$ $1/projects/$2
redirigera à /some/subdir/<anything>
/some/subdir/projects/<anything>
.
Notez que le premier est réellement nécessaire /
pour correspondre au début de l'URL, à moins que vous avez mis quelque part RewriteBase /
.