Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
CodeIgniter中.htaccess和routes.php文件之间的关系是什么?_Php_.htaccess_Codeigniter_Mod Rewrite_Routing - Fatal编程技术网

CodeIgniter中.htaccess和routes.php文件之间的关系是什么?

CodeIgniter中.htaccess和routes.php文件之间的关系是什么?,php,.htaccess,codeigniter,mod-rewrite,routing,Php,.htaccess,Codeigniter,Mod Rewrite,Routing,这是我的.htaccess文件: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] 和my routes.php文件: $route['default_controller'] = 'pages/view'; $route['news/(:any)'] = 'news/view/$1'; $

这是我的.htaccess文件:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L]
和my routes.php文件:

$route['default_controller'] = 'pages/view';
$route['news/(:any)'] = 'news/view/$1';
$route['news'] = 'news';
$route['(:any)'] = 'pages/view/$1';
他们基本上不是做同样的事情吗?使用哪一个是正确的


*编辑:我的问题并不是针对这个例子的。这更像是,哪一个对什么有好处?看起来他们两人的想法是一样的?还是我错了*

htaccess文件从URL中删除index.php,而routes.php文件控制URI段在控制器、操作和参数方面指向的位置

换句话说,


.htaccess是apache服务器从请求的URL中删除index.php的指令,routes.php只是指示实际的php脚本,.htaccess文件从URL中删除index.php,而routes.php文件控制URI段在控制器、操作和参数方面指向的位置

换句话说,


.htaccess是apache服务器从请求的URL中删除index.php的指令,routes.php只是指导实际的php脚本和
。htaccess
文件告诉apache将任何请求匹配到一个uri,该uri不是您所服务目录中的文件或文件夹,并将其转发给index.php控制器(也不再需要在url中引用
index.php


routes.php
是uri到控制器的映射,是特定于codeigniter的一段代码。
.htaccess
独立于codeigniter代码,可以独立于任何php框架使用
.htaccess
文件告诉apache将任何请求匹配到不是director中的文件或文件夹的uri确认您正在提供服务,并将其转发给index.php控制器(也无需在url中引用
index.php


routes.php
是URI到控制器的映射,是特定于codeigniter的一段代码。
.htaccess
独立于codeigniter代码,并且可以独立于任何php框架使用。但是,即使可以,也不适合这样做。htaccess用于什么,路由是什么。php用于?我的意思是在大局中,而不是在这个特定的示例中..这对什么有好处?它们似乎做了相同的事情?Codeigniter通过index.php接收所有请求。它后面的所有内容本质上都是一个查询字符串。“routes.php”解析该查询字符串并指向控制器和操作。htaccess是指向他建议apache服务器不要显示index.php,因为否则它会在每个页面上显示,并附加一个可变查询字符串。php解释器不会解析它,这就是为什么它的语法对您来说可能是陌生的。它是由apache解析的,如果您愿意的话,它可以负责从URL栏中删除index.php这是一个一站式脚本,用于根据请求的URL将浏览器重定向到特定的控制器和操作。您可以使用这两种方法来实现路由-我会把钱花在
.htaccess
更快,但对这两种帐户来说都只是略微的是Koray。但是,请记住
routes.php
只能完成其中的一小部分
.htaccess
可以。在我上面提供的链接中,您可以阅读
.htaccess
可以完成的所有魔法。
路由.php
确实是在
.htaccess
之后访问的。事实上,
.htaccess
是第一个运行的脚本,甚至可能在
index.php
之前。但即使您可以,它也不会运行这样做是一个很好的实践。htaccess用于什么,routes.php用于什么?我的意思是在大局中,而不是在这个特定的示例中。哪一个用于什么?它们似乎做了相同的事情?Codeigniter通过index.php接收所有请求。它后面的所有内容本质上都是一个查询字符串。“routes.php”解析该查询htaccess是apache服务器的一个指令,不显示index.php,因为否则它会在每个页面上显示并附加一个变量查询字符串。php解释器不会解析它,这就是为什么它的语法对您来说可能是陌生的。它是由apache解析的,可以负责much不仅仅是从你的URL栏中删除index.php,如果你愿意的话。它是一个一站式脚本,用于根据请求的URL将浏览器重定向到特定的控制器和操作。你可以通过这两种方式实现路由-我会把钱花在
。htaccess
更快,但在这两种帐户上都只是略微是Koray。然而,请记住,
routes.php
只能完成
.htaccess
所能完成的一小部分。在我上面提供的链接中,您可以阅读
.htaccess
可以完成的所有魔法。
routes.php
确实是在
.htaccess
之后访问的。事实上,
.htaccess
甚至是第一次运行脚本在
index.php
之前,那么什么时候使用哪个呢?例如,我应该(可以)吗尝试使用$route数组跳过index.php文件?您可以同时使用这两个数组。
.htaccess
在大多数情况下都是虚荣的东西。要将
index.php
从路由中删除到最终用户,您的CI应用程序在没有
.htaccess
的情况下将完全正常运行。您始终需要一个进入codeigniter的入口点应用程序(
index.php
),您需要codeigniter路由器将apache处理的请求与应用程序中的控制器/操作相匹配。其他框架(如Symfony2)允许您将应用程序路由转储为
mod_rewrite
格式,以提高性能。但是,在大多数简单的应用程序中,这是不必要的。那么何时使用哪个?对于例如,我是否应该(是否可以)尝试使用$route数组跳过index.php文件?您可以同时使用这两种数组。
.htaccess
在大多数情况下都是虚荣的。要删除
ind