Estou tendo o seguinte problema em um host usando o Apache 2.2.22 + PHP 5.4.0
Preciso fornecer o arquivo /home/server1/htdocs/admin/contents.php
quando um usuário faz a solicitação http://server1/admin/contents
:, mas recebo esta mensagem no servidor error_log.
Negotiation: discovered file(s) matching request: /home/server1/htdocs/admin/contents (None could be negotiated)
Observe que eu mod_negotiation
habilitei e MultiViews entre as opções para o host virtual relacionado:
<Directory "/home/server1/htdocs">
Options Indexes Includes FollowSymLinks MultiViews
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Eu também uso mod_rewrite
, com as seguintes .htaccess
regras:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\./]*)$ index.php?t=$1 [L]
</IfModule>
Parece muito estranho, mas na mesma caixa do PHP 5.3.6 costumava funcionar corretamente. Estou apenas tentando uma atualização para o PHP 5.4.0, mas não consigo resolver esse problema de negociação. Alguma idéia de por que o Apache não pode corresponder contents.php
ao pedir content
(qual deveria ser o que a negociação de modificação deveria fazer)?
ATUALIZAÇÃO: Percebi que a negociação de mod_nós se comporta corretamente com arquivos com extensão diferente de .php: por isso, se eu tiver um arquivo chamado /admin/contents.txt, posso acessá-lo regularmente com o navegador com / admin / contents url. Portanto, o problema é apenas para arquivos php. Alguma pista sobre o que poderia fazer a negociação falhar?
+MultiViews
ativado, e ele desapareceu ao desativá-lo.