Pergunta

Eu tenho um problema mod_rewrite. Ou com mais precisão, tenho um problema com o ISAPI_REWRITE, que é um clone Mod_rewrite para o IIS. Especificamente, o ISAPI_REWRITE V3 em execução no IIS 7. O objetivo é se comportar de forma idêntica ao mod_rewrite, por isso espero que meu problema se aplique ao mod_rewrite também.

Meu problema se resume a isso: eu tenho um script bar.php que eu quero acessar via URL foo. Eu primeiro reescrevo foo para bar. Em seguida, tente converter o URL limpo em um nome de arquivo real.

RewriteRule ^foo$ bar

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* $0.php

o RewriteCond está falhando porque ${REQUEST_FILENAME} Ainda diz "foo" em vez de "bar". Não é atualizado após a primeira reescrita.

Como posso fazer isso funcionar? Eu poderia consertar isso simplesmente escrevendo RewriteRule ^foo$ bar.php. Mas eu preferiria fortemente manter as regras de remapeamento de URL separadas das regras de extensão de arquivo.

Foi útil?

Solução

Resposta provisória ...

RewriteCond %{DOCUMENT_ROOT}/$0.php -f

Usando $0 Tenho acesso ao URL mais recente de reescrito, o que me deixa feliz. Mas eu tenho que adicionar %{DOCUMENT_ROOT} Para transformar isso em um nome de arquivo, o que me deixa triste. Um pouco de um kludge.

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