Pergunta

Eu queria conjunto .htaccess para reescrever:

example.com/bla/info/

para

example.com/info/index.php?q=bla

example.com/bla/info/txt/

para

example.com/info/index.php?q=bla&t=txt

Eu queria que o navegador ainda para exibir:

example.com/bla/info/txt/

Eu não queria reescrever no nível 2 regravações, como:

example.com/bla/xxx/ 

ou

example.com/ccc/zzz/aaa/

e

example.com/silly/info/ 

iria funcionar tão bem como

example.com/strange/info/mytxt/

Será que isso faz sentido?

Qualquer ajuda?

Foi útil?

Solução

Se você começar o seu padrão com ^ e terminá-la com US $, a regra só se aplica se os jogos de cordas todo.

RewriteRule   ^/bla/info/$      /info/index.php?q=bla
RewriteRule   ^/bla/info/txt/$  /info/index.php?q=bla&t=txt

Se você usar não use a opção [R], o URL mostrado no navegador será o que o usuário digitou.

Você está tentando fazer isso de propósito geral? Se assim for, você pode usar-type regex correspondente e substituição de variáveis. Para fazer 'bla' corresponder a qualquer cadeia até a próxima barra (/), o uso

([^/]+)

no seu padrão e referência-lo com US $ 1 em sua substituição.

RewriteRule ^/([^/]+)/info/$          /info/index.php?q=$1
RewriteRule ^/([^/]+)/info/([^/]+)/$  /info/index.php?q=$1&t=$2

Eu recomendo os Apache páginas sobre mod_rewrite para mais informações .

[Edit. Fixa as regras de não incluir o nome do host no padrão, como o poster original descoberto.]

-
BMB

Outras dicas

você me pegou no caminho certo.

i acabou com algo como isto:

RewriteRule ^([^/\.]+)/info/?$ example/info/index.php?q=$1 [L]

muito obrigado

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