代码点火器无法通过直接链接访问页面

时间:2015-01-28 22:45:09

标签: php codeigniter view controller

我正在创建一个项目,Code Igniter作为后端框架,Bootstrap 3作为前端框架。

通过直接调用控制器后跟方法来访问我的页面时出现问题。

例如我的控制器是site.php,方法就是家。

这是什么样的。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Site extends CI_controller {
    public function index(){
        $this->home();
    }

    public function home(){
        $data["title"] ="SmartAgent";

        $this->load->view("site_header");
        $this->load->view("content_home", $data);
        $this->load->view("site_footer");
    }

据我所知,方法索引基本上将方法home设置为索引页。

当我在我的网址中输入网址时,例如:

examplesite.co.uk

控制器正确加载我的home方法的视图,即content_home.php,网站加载主页以及标题正确。

但是,如果我输入:

examplesite.co.uk/site/home

这不起作用!我不知道为什么,这进一步导致我的问题,如URL不工作等等。但基本网址设置,我可以加载CSS,JS和图像文件。我也启用了助手,路线和其他所有。

以上网址可以加载我正在处理的另一个项目。所以我知道我错过了什么。

任何想法?

由于

3 个答案:

答案 0 :(得分:1)

Codeigniter路由相对于index.php完成。

因此,您的链接应为examplesite.co.uk/index.php/site/home

如果这是问题,那么你需要一个.htaccess文件,并在其中写

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 

(如果我没记错的话,请从我的手机写信)

然后,您将从您的网站中删除index.php。

答案 1 :(得分:0)

使用codeigniter,您需要设置$route[]。这是application/config/routes.php

同时查看关于这个的codeigniter文档,它非常好,并将解释所有。

答案 2 :(得分:0)

感谢大家的帮助和解答!

这是我的一个愚蠢的错误,我想让每个人都知道,如果有人要面对这个问题,这可能会有所帮助。 @Alexey上面的回答给了我一个灯泡时刻!谢谢你。

基本上在.htaccess mod重写文件中,可以从谷歌下载。我忘了更改位于第4行顶部的服务器的目录

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /yourfolderdirectoryhere/

如果您不确定或不清楚,请在下面的教程中查看帮助我。

https://www.youtube.com/watch?v=dynPx1B0jis