2012-03-12 101 views
0

我用CodIgniter开始一个PHP项目,我有一个项目在wamp/www/myproject下。当我开始本地主机,然后单击我的项目URL看起来是这样的:这是在CodeIgniter中的URL路由

localhost/myproject 

我想有这样的路由,当有人来键入

localhost/myproject/box/123 

他应该被重定向到home控制器box方法。

我该怎么办?

+0

http://stackoverflow.com/questions/2584571/getting-started-with-url-routing-with-php-codeigniter – 2012-03-12 10:53:17

+0

@Eddy弗雷迪以及我试过,但它不工作 – 2012-03-12 10:55:02

+0

已经有一个很好的在文档中的例子。 – itachi 2012-03-12 10:55:31

回答

3

转到路由配置文件(我想你知道在哪里),并补充一点:

$route['box/(:num)'] = 'home/box/$1'; 

任何有box/[any number]将被路由到home/box方法,以及比赛进行到(:num)作为第一个参数。

所以你

http://localhost/myproject/index.php/box/123 

将被路由到:( “因为如果你使用的显示”)

http://localhost/myproject/index.php/home/box/123 

(这我假设你没有重写引擎从URL中移除index.php尚)


From the guide

删除index.php文件

默认情况下,index.php文件将被包含在你的URL

http://example.com/index.php/news/article/my_article 

您可以轻松地删除此文件使用带有一些简单规则的.htaccess文件。下面是这样一个文件的一个例子,使用“负”的方法中,一切都被重定向除指定的项目:

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

在上述例子中,比那些的index.php,图像之外的任何HTTP请求时,而robots.txt被视为您的index.php文件的请求。

+0

我试过你的建议解决方案,但是当我在url中输入http:// localhost/mediabox/box/1时,它表示在服务器 – 2012-03-12 10:57:49

+0

上找不到所请求的url,你是使用apache重写删除'index.php /'或还没有?因为如果没有,你的网站应该像'http:// localhost/mediabox/index/box/1' – Joseph 2012-03-12 10:59:37

+0

不,我不使用它...你能指导我该怎么做吗? – 2012-03-12 11:01:09