Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter中此的URL路由_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter中此的URL路由

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

我正在用CodIgniter启动一个PHP项目,我在
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
(预打包的演示页面)?请阅读用户指南。