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

Foi útil?

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.

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