Servidor Ubuntu: Apache2 parece anexar .php a URI

1

Estou usando a tônica da biblioteca php para serviços da web. Meu recurso é como exemplo em

base-uri/myResource

Agora, se um arquivo myResource.php existir nesse diretório, o mod_rewrite da url verá

base-uri/myResource.php

que falha as condições de reescrita e meu aplicativo quebra (o aplicativo funciona no apache no Windows)

Se eu renomear myResource.php para myResourceClass.php (ou qualquer outra coisa), ele funciona.

Portanto, parece que apache ou um se seus módulos assumem que com base-uri / myResource eu quero chamar base-uri / myResource.php mas somente se myResource.php existir.

Este é um problema geral ou posso configurá-lo em algum lugar para não acontecer?

obrigado!

EDITAR:

veja

Como configurar um mod_rewrite básico? / p>

A resposta contém a mesma observação!

RESPOSTA:

O problema é a configuração padrão do Apache no Ubuntu:

Options Indexes FollowSymLinks MultiViews

O MultiViews está mudando o request_uri de myResource para myResource.php.

Soluções:

  • desativa os MultiViews no .htaccess: Opções -MultiViews
  • remova os MultiViews da configuração padrão
  • renomeie o arquivo como exemplo para myResourceClass

Eu escolhi a última opção porque isso deve funcionar independentemente da configuração e eu só tenho 3 desses arquivos, então a alteração demorou cerca de 30 segundos ...

    
por beginner_ 23.03.2012 / 07:42

2 respostas

1

O problema é a configuração padrão do Apache no Ubuntu:

Options Indexes FollowSymLinks MultiViews

O MultiViews está mudando o request_uri de myResource para myResource.php.

Soluções:

  • desativa os MultiViews no .htaccess: Opções -MultiViews
  • remova os MultiViews da configuração padrão
  • renomeie o arquivo como exemplo para myResourceClass

Eu escolhi a última opção porque isso deve funcionar independentemente da configuração e eu só tenho 3 desses arquivos, então a alteração demorou cerca de 30 segundos ...

    
por 26.03.2012 / 09:33
0

Há uma grande chance de haver um arquivo .htaccess na pasta que verifica se existe algo com .php como um arquivo e, em caso afirmativo, adicione o .php extention.

Meu conselho: verifique se há um arquivo .htaccess na pasta. Se houver um, e meu conselho não foi suficiente, por favor, adicione à sua pergunta para que possamos ir mais longe.

    
por 23.03.2012 / 09:23