2011-10-31 88 views
1

问题如下: 我部署了一台服务器,由于某种原因服务器没有像平常那样响应网址。我的意思是当我有一个名为somefile.php的文件上传到mysite.com/,我输入浏览器mysite.com/somefilesomefile.php被调用,而不是说404找不到。我认为这很奇怪,并且由于某种原因,它阻止了我的.htaccess文件正确重写,因为文件somefile.php被调用,并且mysite.com/somefile之后有信息,如mysite.com/somefile/someotherfilesomeotherfile被忽略,并且somefile.php被显示。我甚至在服务器的父目录中删除了所有其他.htaccess文件,结果仍然相同。我希望你能帮助我。php Apache服务器url重写问题

在本地主机上,未观察到此问题。我得到404没有找到,因为我应该...

+2

难道这是你的问题? http://stackoverflow.com/questions/5692178/apache-ignoring-file-extensions –

+0

你也可以启用mod_rewrite日志,看看它是否真的导致你的问题。 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog –

+0

嗯,是的,这似乎是我的问题,但没有提供答案,因为我已经删除了所有我的htaccess的文件,我不相信它们是造成这种:( –

回答

2

听起来像你有MultiViews当前启用。尝试禁用它们。

在Multiviews

多视图是每个目录选项,这意味着它可以被设置 与内一个选项指令,或在httpd.conf 部分,或(如果设置AllowOverride被正确设定)在 .htaccess文件中。请注意,选项全部不设置MultiView;你 必须要求它的名字。

多视图的效果如下:如果服务器接收用于/一些/目录/ foo的一个 请求时,如果/一些/目录,使多视图,和 /一些/目录/ foo的不存在,则服务器读取目录 查找名为foo。*的文件,并有效地伪造一个类型映射图 ,它们命名所有这些文件,为它们分配相同的媒体类型,并且如果客户端要求输入 他们的名字。然后它会选择最符合客户要求的 。

http://httpd.apache.org/docs/2.2/content-negotiation.html#multiviews