更改网址方案

时间:2012-07-06 06:26:40

标签: php codeigniter codeigniter-url

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

user是模块名称

控制器: - 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不起作用,设置路由也不起作用。 如果没有在网址中提供模块名称,是否可以转到任何页面??

4 个答案:

答案 0 :(得分:2)

编辑配置文件夹

下的routes.php文件
$route['user/register'] = 'user/registration/register';

答案 1 :(得分:0)

您可以在url rewrite文件中使用.htaccessurl rewriting without htaccess how to do url-rewriting in PHP

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

获取更多信息here,因为我不了解CodeIgniter

答案 2 :(得分:0)

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

127.0.0.1 http://mysitename

127.0.0.1 http://localhost.mysitename

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

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

要使CI与虚拟主机一起使用,您必须在CI配置文件中设置基本URL以匹配v主机URL。

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

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

答案 3 :(得分:0)

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