2012-07-06 110 views
0

我使用HMVC创建一个注册页面: - 在URL现在我打字: - http://localhost/CI/index.php/user/registration更改URL方案

用户模块名称

控制器: - 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中给模块名称..?

+0

只是改变你的'锚tag'到 register :-) – Vimalnath 2012-07-06 06:36:52

+0

没有好友.. :(它说找不到网页..... – avinashse 2012-07-06 06:48:44

+0

你能告诉我是什么网址显示当你'页面不found' – Vimalnath 2012-07-06 06:49:50

回答

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 URL的部分。它有示例.htaccess配置。此外,它还解释了代码点火器URL的工作原理。

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

一旦你完成了所有这些,你将需要重新启动apache。

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

+0

嗯感谢您的答复......但我在codeigniter中使用hmvc,并且用户是我的模块名称控制器名称是注册,funciton是注册..我在url中得到的是:''../ index.php/module_name/controller_name/controller_function'。我只想'../ index.php/controller_name/controller_function'不包含模块名称..有没有办法做到这一点..? – avinashse 2012-07-06 07:58:41

+0

你能告诉我什么是篝火吗? – avinashse 2012-07-06 13:30:48

2

编辑您config文件夹

$route['user/register'] = 'user/registration/register'; 
+0

@Ali是正确的。使用routes.php,而不是.htaccess – 2012-07-06 10:05:16

+0

我做了那件事,但它不工作,当我点击homepage.php \ – avinashse 2012-07-06 10:27:59

+0

的注册链接,如果您的注册链接是这样的'register '改变'$ route ['registration /注册'] ='用户/注册/注册';' – 2012-07-06 10:30:11

0

是它在你的项目中使用HMVC必须下routes.php文件?否则,去简单的Codeigniter方式,因为这是你在这种情况下期望的。

+0

hmmm ... hmvc将分离每个模块..它可以用一个简单的codeigniter来完成,但是我不能创建不同的modules..so我使用HMVC] – avinashse 2012-07-06 12:52:57