Apache提供“/”但404提供所有其他网址

时间:2018-05-29 21:54:48

标签: php apache

我使用内置服务器构建了一个php站点。在使用Apache时,我没有遇到任何问题。

文件夹结构:

应用 - >的index.php

控制器 - > home.php

视图 - > home.php

我让Apache在“/”处成功提供主页,但我访问的任何其他页面返回404.“index.php”内部是“switch($ _SERVER ['REQUEST_URI'])”语句。访问URI,称为控制器,后者又调用视图:

switch ($_SERVER['REQUEST_URI'])
{
  case '/':
    home_controller::home();
    break;

  case '/signup':
    signup_controller::signup();
    break;
}

如果我尝试访问“/ signup”中的“注册页面”,我会收到404.我不确定为什么会这样。我不太了解Apache,但花了很多时间试图解决这个问题。重写没有解决问题,但我可能做错了。任何信息将不胜感激。

修改1 Modrewrite可以解决这个问题,但之前没有。如上所述,我不太了解Apache,所以找到正确的术语可能会让我感到沮丧。

我的PHP程序采用REQUEST_URI并且内置了一个路由器,它与switch语句匹配。我的逻辑是,任何进入Apache的uri都将转向PHP。我没有采取任何措施使“/”正常工作。不知道为什么我需要做一些不同的事情来使“/ signup”工作。

修改2

我解决了这个问题。

try_files $uri /index.php$is_args$args;

我从Apache切换到Nginx并应用上面的行。我实际上有两个问题。第一个是数据库问题阻止应用程序正常运行。另一个是上面缺少的那条线。

这个问题并不重复,因为“漂亮的网址”不是答案。问题是Apache如何在php中路由我已经制作的url。

感谢ippi提供链接!

0 个答案:

没有答案