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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top