.htaccess URL Rewrite para Subdirectory
-
21-08-2019 - |
Pergunta
O que é o melhor método para reescrever qualquer coisa abaixo "/ some / subdir" para "/ some / Subdir / projectos" como deste:
http://www.mydomain.com/some/subidr/test/
... a isto:
http://www.mydomain.com/some/subdir/projects/test/
Eu encontrei uma pergunta semelhante publicado, mas a solução não fez parecem funcionar no meu caso. Minha tentativa atual até agora (o que não parece trabalho):
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/projects/.*$
RewriteRule ^(.*)$ /projects/$1 [L]
EDIT:. eu esqueci de mencionar o arquivo .htaccess teria que estar sentado dentro / some / subdir como eu não ter acesso de gravação para a raiz da Web do servidor
Solução
Esta é a solução que eu finalmente consegui trabalho:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/some/subdir/projects/.*$
RewriteRule ^(.*)$ /some/subdir/projects/$1 [L]
Outras dicas
Tente esta regra em seu arquivo de configuração .htaccess na raiz do documento de seu servidor:
RewriteEngine on
RewriteRule !^some/subdir/projects(/|$) some/subdir/projects%{REQUEST_URI} [L]
Como você quer usar esta regra em seu diretório /some/subdir/
, alterar a regra da seguinte forma:
RewriteRule !^projects(/|$) projects%{REQUEST_URI} [L]
E se você deseja redirecionar todos os pedidos de /some/subdir/projects/
foobar
para /some/subdir/
foobar
, coloque essa regra acima da anterior mencionou:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /some/subdir/projects[/?\s]
RewriteRule ^some/subdir/projects/?([^/].+)?$ /some/subdir/$1 [L,R=301]
Gostaria de usar este:
RewriteEngine On
RewriteRule ^(/some/subdir)/(.*)$ $1/projects/$2
Isto irá redirecionar /some/subdir/<anything>
para /some/subdir/projects/<anything>
.
Note que o /
líder é realmente necessário para coincidir com o início do URL, menos você tem conjunto RewriteBase /
em algum lugar.