【问题标题】:Apache error 404 for subdomain with Codeigniter application带有 Codeigniter 应用程序的子域的 Apache 错误 404
【发布时间】:2017-11-23 17:42:25
【问题描述】:

我正在尝试访问此网站中的子域 url

http://medica.mastertools.net/

但我总是得到:

The requested URL /logincheck was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.4.29 (Win32) OpenSSL/1.0.2l PHP/7.1.11 Server at medica.mastertools.net Port 80

我发现不是服务器配置,因为指向另一个文件夹,子域工作,所以可能 Codeigniter 中的某些东西是错误的。

在 route.php 我有:

$route['default_controller'] = "home";
$route['logincheck'] = "home/logincheck";

和我的控制器:

class Home extends CI_Controller {

public function __construct()
{
    parent::__construct();
}

function logincheck()
{
    if(isset($_POST['strUsername']))
    {
        $blogin_ok = $this->logmodel->check_login($_POST['strUsername'], $_POST['strPassword']);
        if( $blogin_ok == 1)
        {
            $this->index();
        }
        else if ( $blogin_ok == 2 )
        {
            $this->makeFinalLayout('loginchose');
        }
        else
        {
          $_SESSION['loggin_msg'] = LOGINERRORMSG;
            $this->login();
        }
    }
    else
    {
        $this->login();
    }
}

【问题讨论】:

  • 所以子域有效但/logincheck无效?
  • 我现在发现不是服务器配置,因为指向另一个文件夹子域工作,所以可能 Codeigniter 中的某些东西是错误的
  • 只有主域有效,/logincheck no
  • 你的网站根目录下是否有.htaccesss文件?
  • 我怀疑这是几件事。 .htaccess 没有被读取,并且你没有启用 mod_rewrite,你能确认你的根目录下有一个 .htaccesss 吗?

标签: php apache codeigniter


【解决方案1】:

对于处理 URL 路径的框架,必须做好两件事:

  1. 一个 .htaccess 文件,其中包含适当的重写规则或主要 apache 配置中的重写规则。
  2. 必须启用 Mod_rewrite。

如何启用 mod_rewrite: How to enable mod_rewrite for Apache 2.2

重写规则: Apache rewrite rule

有关更多信息,请阅读 Apache HTTP 文档

【讨论】:

    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2014-06-03
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    相关资源
    最近更新 更多