.htaccess de reescritura de URL a subdirectorio
-
21-08-2019 - |
Pregunta
¿Cuál es el mejor método para volver a escribir nada por debajo de "/ some / subdirectorio" a "/ algunos / subdirectorios / proyectos" como de esto:
http://www.mydomain.com/some/subidr/test/
... a esto:
http://www.mydomain.com/some/subdir/projects/test/
publicado, pero la solución no hice parece funcionar en mi caso. Mi actual intento hasta ahora (lo que no parece funcionar):
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/projects/.*$
RewriteRule ^(.*)$ /projects/$1 [L]
EDIT:. Se me olvidó mencionar el archivo .htaccess tendría que estar sentado dentro / some / subdirectorio, ya que no tiene acceso de escritura a raíz de la web del servidor
Solución
Esta es la solución finalmente llegué al trabajo:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/some/subdir/projects/.*$
RewriteRule ^(.*)$ /some/subdir/projects/$1 [L]
Otros consejos
Trate de esta regla en el archivo de configuración .htaccess en la raíz de documentos de su servidor:
RewriteEngine on
RewriteRule !^some/subdir/projects(/|$) some/subdir/projects%{REQUEST_URI} [L]
A medida que desee utilizar esta regla en su /some/subdir/
directorio, cambiar la regla de la siguiente manera:
RewriteRule !^projects(/|$) projects%{REQUEST_URI} [L]
Y si desea desviar todas las peticiones de /some/subdir/projects/
foobar
a <=> <=> , puso esta regla por encima de la anterior mencionada:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /some/subdir/projects[/?\s]
RewriteRule ^some/subdir/projects/?([^/].+)?$ /some/subdir/$1 [L,R=301]
Me gustaría utilizar esto:
RewriteEngine On
RewriteRule ^(/some/subdir)/(.*)$ $1/projects/$2
Esto redirigirá /some/subdir/<anything>
a /some/subdir/projects/<anything>
.
Tenga en cuenta que el principal /
que realmente se requiere para que coincida con el comienzo de la URL, a menos que que han RewriteBase /
establecer alguna parte.