o mod_rewrite para o alias de um sufixo do arquivo tipo para outro
-
08-06-2019 - |
Pergunta
Espero que eu possa explicar com clareza suficiente, mas se não, deixe-me saber e eu vou tentar esclarecer.
Atualmente estou desenvolvendo um site usando ColdFusion e ter um mod_rewrite regra para fazer lhe o olhar como o site é em PHP.Quaisquer pedidos de index.php são processadas pelo índice.cfm (a regra de mapas *.o php *.cfm).
Isso funciona muito bem - tão longe, tão bom.O problema é que eu precisava para retornar um código de status 404 se o índice.cfm (ou qualquer página ColdFusion) é solicitada diretamente.
Se eu tentar bloquear o acesso ao *.cfm de arquivos utilizando o mod_rewrite ele também retorna um erro 404 para os pedidos para o *.php.
Eu acho que eu poderia ter de mudar a minha configuração do Apache, em vez de utilizar .htaccess
Solução
Você pode usar o S
sinalizador ignorar o 404
de regra, como este:
RewriteEngine on
# Do not separate these two rules so long as the first has S=1
RewriteRule (.*)\.php$ $1.cfm [S=1]
RewriteRule \.cfm$ - [R=404]
Se você também estiver usando o Alias
opção, em seguida, você deve também adicionar a PT
bandeira.Ver o mod_rewrite documentação para obter detalhes.
Outras dicas
Postar as regras você já tem como ponto de partida para que as pessoas não têm para recriá-lo para ajudá-lo.
Gostaria de sugerir testes [L] a regra que mapas .o php .cfm arquivos como a primeira coisa a tentar.
Você tem que usar dois grupos distintos de regras de reescrita, uma para .php, o outro para .chm e torná-los mutuamente exclusivos com RewriteCond %{REQUEST_FILENAME}.E fazer uso da bandeira [L] como sugerido por jj33.
Você pode manter suas regras .htaccess.