apache mod_rewrite falha quando o arquivo com o mesmo nome existe

2

O arquivo completo .htaccess

RewriteEngine on
RewriteBase /

RewriteRule ^([a-z0-9_\-]+)/([a-z0-9_\-]+)/(index\.php)?$ /main.php?type=$1&action=$2 [NC,QSA,L]

então,

www.server.com/users/new/

redireciona para:

www.server.com/main.php?type=users&action=new

A regra funciona bem na minha máquina de teste.

No entanto ,
em outra máquina, falha se houver um arquivo que comece com o mesmo nome :

/
|- main.php
|
+--[users]
    |- new.inc.js

solicitando

www.server.com/users/list/       --> 200 OK (main.php returns results as expected)
www.server.com/users/new/        --> 404 Not Found

Se eu remover 'new.inc.js', a solicitação será redirecionada conforme o esperado.

Qual sinalizador de configuração causa esse comportamento?
(Eu tenho batido minha cabeça contra a parede por algum tempo agora)

Atualizar (Eu adicionei o conteúdo completo do arquivo .htaccess) index.html e index.php são os índices de diretório

(E isso não faz sentido para mim também: ()

    
por Jacco 21.08.2009 / 18:35

1 resposta

7

Você tem mod_negotiation instalado? Se assim for, isso levará seu pedido de novo e tentar descobrir qual arquivo você realmente queria enviar. Verifique se você não tem Options MultiViews set. Então, no .htaccess put Options -MultiViews .

    
por 21.08.2009 / 20:12