【问题标题】:Cannot access newly created 'View' page in Codeigniter无法访问 Codeigniter 中新创建的“查看”页面
【发布时间】:2015-03-22 07:06:40
【问题描述】:

我正在使用 Codeigniter 框架。我在应用程序/控制器中创建了一个名为“blog.php”的新控制器。这个“blog.php”的代码如下:

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

class blog extends CI_Controller {

  public function view($page = 'blog_view')
    {
      $this->load->view('blog_view');
    }
}

在应用程序/视图中,我创建了“blog_view.php”,该文件具有以下代码:

<h1>BLOG VIEW</h1>

现在我有两个问题:

  1. 如何在 url 中访问此 blog_view 页面?我的项目名称是“ci”。当我访问“localhost/ci”时,我可以查看“欢迎”页面。
  2. 我应该怎么做才能添加另一个页面的链接,比如博客页面本身的“关于”页面?例如,在静态网站中,我们在 href 中添加带有 about.html 的锚标记。

提前致谢。

【问题讨论】:

  • 尝试将视图重命名为 index()
  • 是的。这解决了这个问题。非常感谢。现在我在主页中添加了一个博客视图页面的链接,当我点击它时,它正确地重定向到这个 url 'localhost/ci/index.php/blog' 的博客视图页面。有什么办法可以获得一个干净的 url,这样当我单击该链接时,它必须重定向到具有干净 url 的同一页面,例如“localhost/ci/blog”。我应该在'routes.php'中做什么?
  • 那是问了很多次,只是在谷歌上搜索如何从 url 中删除 index.php,甚至在 youtube 上也有一些视频。

标签: php codeigniter


【解决方案1】:

如果你不使用 .htaccess 试试这个 http://localhost/ci/index.php/blog

要删除 index.php,请在 ci 文件夹中创建 .htaccess 文件并将此代码放入其中

RewriteEngine On
RewriteBase /

# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{REQUEST_URI} !/system/.* [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

http://localhost/ci/blog

添加更多页面添加更多控制器,例如创建关于页面

创建一个名为 about 的新控制器

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

class about extends CI_Controller {

  public function view($page = 'blog_view')
    {
      $this->load->view('about_view');
    }
}

和视图

<h1>About VIEW</h1>

【讨论】:

    猜你喜欢
    • 2018-04-27
    • 1970-01-01
    • 2018-03-03
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多