【问题标题】:php Apache server url rewrite issuephp Apache服务器url重写问题
【发布时间】:2011-12-19 02:17:15
【问题描述】:

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

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

【问题讨论】:

  • 这是你的问题吗? stackoverflow.com/questions/5692178/…
  • 您还可以启用 mod_rewrite 日志,看看它是否真的导致了您的问题。 httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog
  • 嗯,是的,这似乎是我的问题,但没有提供答案,因为我已经删除了我所有的 htaccess 文件,我不相信它们会导致这个:(
  • 所以您尝试禁用多视图并验证 mod_rewrite 日志文件中没有显示任何内容?
  • 天哪,伙计,我尝试了 Options -MultiViews,它工作得很好,我只是想,非常感谢你 :)))))猜测对方遇到了其他问题......

标签: php apache url


【解决方案1】:

听起来您目前启用了MultiViews。尝试禁用它们。

多视图

MultiViews 是每个目录的选项,这意味着它可以设置 在 a 中使用 Options 指令,或 httpd.conf 中的部分,或者(如果 AllowOverride 设置正确)在 .htaccess 文件。注意 Options All 没有设置 MultiViews;你 必须点名。

MultiViews 的效果如下:如果服务器收到一个 请求 /some/dir/foo,如果 /some/dir 启用了 MultiViews,并且 /some/dir/foo 不存在,则服务器读取目录 查找名为 foo.* 的文件,并有效地伪造类型映射 它命名所有这些文件,为它们分配相同的媒体类型和 如果客户要求其中之一,它将具有的内容编码 他们的名字。然后它选择与客户的最佳匹配 要求。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2012-04-23
    • 2015-04-13
    相关资源
    最近更新 更多