Use as seguintes diretivas de configuração (você provavelmente deseja adicioná-las ao seu arquivo .htaccess
):
RewriteEngine on
RewriteCond %{request_uri} !^/prepended
RewriteRule ^(.+?)$ prepended/$1
Eu quero que o mod_rewrite faça isso:
http://server/*
- > redirecionar para http://server/app/*
http://server/app/*
não deve ser redirecionado.
http://server.domain/*
- > redirecionar para http://server/app/*
http://server.domain/app*
- > redirecionar para http://server/app/*
Tem que trabalhar com mod_jk!
Editar: esta é a solução final
# force use of host 'server'
RewriteCond %{HTTP_HOST} !^server$
RewriteRule ^(.*)$ server$1 [R,NE,L]
# prepend /app to URL if missing
RewriteCond %{request_uri} !^/app.*?
RewriteRule ^(.+?)$ app/$1 [R,NE,L]
Obrigado a você, fahadsadah e Insanity5902! Estou hesitante em sinalizar um de vocês como "correto", já que ambos forneceram dados valiosos que compunham a solução final.
Use as seguintes diretivas de configuração (você provavelmente deseja adicioná-las ao seu arquivo .htaccess
):
RewriteEngine on
RewriteCond %{request_uri} !^/prepended
RewriteRule ^(.+?)$ prepended/$1
Isso deve funcionar melhor
RewriteEngine On
RewriteCond %{HTTP_HOST} !^server$ [NC]
RewriteRule ^(.*)$ http://server/$1
RewriteRule ^$ /app
Isso está fora de mim, mas o que deve estar acontecendo . A solicitação vem, se não estiver usando servidor para o nome do host, ele redirecionará para o link mantendo o restante do Campo de URI intacto. Em seguida, ele reprocessará as regras novamente, ignorará a primeira (desde que RewriteCond seja false) e, em seguida, processará a RewriteRule. O que está dizendo, se o URI estiver vazio, envie para / app. Se o URI for qualquer outra coisa, então vazio, ele usará o que já está lá.
Então, além do que você já tem, também deve funcionar como
http://server/foo -> http://server/foo
http://server.domain/foo -> http://server/foo
Deixe-me saber como isso funciona, Na minha cabeça parece funcionar bem:)
Tags mod-rewrite apache-2.2