Php CodeIgniter中此的URL路由
我正在用CodIgniter启动一个PHP项目,我在Php CodeIgniter中此的URL路由,php,codeigniter,Php,Codeigniter,我正在用CodIgniter启动一个PHP项目,我在wamp/www/myproject下有一个项目。当我启动localhost并单击我的项目时,如下所示: localhost/myproject 我想有这样的路由,当有人来打字 localhost/myproject/box/123 他应该被重定向到主页控制器和框方法 如何操作?转到routes配置文件(我想您知道在哪里)并添加以下内容: $route['box/(:num)'] = 'home/box/$1'; 任何包含box/[any
wamp/www/myproject
下有一个项目。当我启动localhost并单击我的项目时,如下所示:
localhost/myproject
我想有这样的路由,当有人来打字
localhost/myproject/box/123
他应该被重定向到主页
控制器和框
方法
如何操作?转到routes配置文件(我想您知道在哪里)并添加以下内容:
$route['box/(:num)'] = 'home/box/$1';
任何包含box/[anynumber]
的内容都将被路由到home/box
方法,并将与(:num)
的匹配作为第一个参数
那么你的
http://localhost/myproject/index.php/box/123
将被路由到:(“显示为使用”)
(我假设您还没有将重写引擎从URL中删除index.php
。)
: 删除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、images和robots.txt之外的任何HTTP请求都被视为对index.php文件的请求
转到routes配置文件(我想您知道在哪里)并添加以下内容:
$route['box/(:num)'] = 'home/box/$1';
任何包含box/[anynumber]
的内容都将被路由到home/box
方法,并将与(:num)
的匹配作为第一个参数
那么你的
http://localhost/myproject/index.php/box/123
将被路由到:(“显示为使用”)
(我假设您还没有将重写引擎从URL中删除index.php
。)
: 删除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、images和robots.txt之外的任何HTTP请求都被视为对index.php文件的请求
@Eddy Freddy我试过了,但不起作用文档中已经有一个很好的例子。你能不能也发布一下新的uri应该是什么样子的?它应该是localhost/mediabox/box/1@EddyFreddy好吧,我试过了,但它不起作用。文档中已经有一个很好的例子。你能不能也发布一下新uri的外观喜欢吗?它应该看起来像localhost/mediabox/box/1I我尝试了您建议的解决方案,但当我键入url时,它说在服务器上找不到请求的url。您是否正在使用apache rewrite删除
index.php/
?因为如果不是,你的网站应该像http://localhost/mediabox/index/box/1
就这个问题而言,它超出了范围,因为您要求的是CI路由,而不是url重写。但是,在这里可以找到:但是当我键入localhost/myprojects时,index.php不包括在我的url中,这是因为index.php
是您访问子文件夹时查看的默认文件,而不指示文件。您是否尝试过访问http://localhost/mediabox/index.php/welcome
(预打包的演示页面)?请阅读用户指南。我尝试了您建议的解决方案,但当我键入url时,它显示服务器上找不到请求的url。您是否正在使用apache rewrite删除index.php/
?因为如果不是,你的网站应该像http://localhost/mediabox/index/box/1
就这个问题而言,它超出了范围,因为您要求的是CI路由,而不是url重写。但是,在这里可以找到:但是当我键入localhost/myprojects时,index.php不包括在我的url中,这是因为index.php
是您访问子文件夹时查看的默认文件,而不指示文件。您是否尝试过访问http://localhost/mediabox/index.php/welcome
(预打包的演示页面)?请阅读用户指南。