0

我正在使用 hmvc 创建一个注册页面:- 现在我在 url 中输入:-http://localhost/CI/index.php/user/registration

用户是模块名称

控制器:-registration.php

<?php
class Registration extends MX_Controller{
    function index() {
        $this->load->view('homepage');
    }

    function register(){
        $this->load->view('registrationPage');
    }
}
?>

查看:-homepage.php

<html>
<body>
    <a href="registration/register">register</a>
</body>
</html>

问题是在我的网址中我必须输入http://localhost/CI/index.php/user/registration/register才能进入注册页面。

我想http://localhost/CI/index.php/user/register我们怎么能做到这一点。?设置 base_url 不起作用,设置路由 ia 也不起作用。这是否可以转到任何页面而不在 url 中提供模块名称..?

4

4 回答 4

2

编辑routes.php配置文件夹下的文件

$route['user/register'] = 'user/registration/register';
于 2012-07-06T09:21:46.253 回答
0

在您的项目中必须使用 HMVC 吗?否则,请选择简单的 Codeigniter 方式,因为这是您在这种情况下所期望的。

于 2012-07-06T11:53:55.933 回答
0

您可以url rewrite.htaccess文件中使用请参阅不使用 htaccess 的 url 重写 以及如何在 PHP 中进行 url 重写

在 CodeIgniter 中,.htaccess 存在于 system/application/config/config.php

在此处获取更多信息,因为我不知道 CodeIgniter

于 2012-07-06T07:17:02.267 回答
0

您应该通过在主机文件中添加一个条目来为您的站点创建一个正确的 URL。例如:

127.0.0.1 http://mysitename

或者

127.0.0.1 http://localhost.mysitename

谷歌如何在 apache 中设置虚拟主机。您应该能够找到很多关于此的文章。现在编辑您的 apache 配置以启用虚拟主机。启用此功能后,您将为您的站点创建一个虚拟主机条目。虚拟主机告诉 apache 将您选择的 URL 映射到项目文件的特定目录路径。(这样实际的目录路径就不是您的 URL 的一部分。)

接下来,您应该编辑您的 .htaccess,以便始终通过 index.php 前端控制器路由请求。完成此操作后,您将不必使用“/index.php/”作为每个 URL 的一部分。阅读 Code Igniter 用户指南中称为 Code Igniter URLs 的部分。它具有示例 .htaccess 配置。此外,它还解释了 Code Igniter URL 的工作原理。

为了让 CI 与虚拟主机一起工作,您必须在 CI 配置文件中设置基本 URL 以匹配 v-host URL。

完成所有这些后,您将需要重新启动 apache。

现在你可以根据你想要的 URL 结构来命名你的控制器和方法。在这种情况下,一个名为 user.php 的控制器带有一个名为 register 的方法。

于 2012-07-06T07:41:35.053 回答