什么是绝对的功能routes.php
的codeigniter
?
我的老师接受过关于它的教导,并说如果你不使用例如以下的路线你的观点将不起作用:
$route['blabla'] = ['blabla/blabla'];
以及它的一切!
但对我来说,它没有使用任何路线.我不知道为什么要使用路线.这只是浪费时间.谁能解释一下?
在codeigniter中,PHP文件以不同的方式提供,而不是直接从浏览器访问PHP文件.此过程称为路由.
我们的代码无需重写 routes.php中的url即可运行.
我们都希望以更方便的方式显示我们的网页,以便它对访问者(当然也包括搜索引擎)更有意义.例如,只需通过检查浏览器地址栏中的URL,即可简要了解页面包含的内容.如果我们保持这一点,就像服务器脚本(PHP,Asp.NET等)可以理解的那样,如下所示,不应该实现我们的目标:
http://yourdomain.com?p=1 http://yourdomain.com?p=2 http://yourdomain.com?w=30 http://yourdomain.com?z=234 //etc......
从上面的链接中,无法理解这些页面的内容.现在,如果它如下所示:
http://codesamplez.com/database/codeigniter-activerecord http://codesamplez.com/programming/regular-expressions-in-php
这些更有意义,我们可以从看到URL中得到一个简单的想法.此外,与早期的网址相比,搜索引擎提供了更多的价值,这就是为什么它们被称为"搜索引擎友好网址".所以,无论你选择什么原因,总是更好地使用SEO友好的URL.好的,现在,我们决定让我们的网站更加SE /访客友好,并希望使用这些网址.现在,我们应该如何开发应用程序以将此URL映射到原始请求处理程序脚本?
Url Rewriting/Routing实际上是将这个seo友好URL转换为服务器代码可以轻松理解的格式/将请求驱动到相应的请求处理程序脚本的技术.
CodeIgniter具有用户友好的URI路由系统,因此您可以轻松地重新路由URL.通常,URL字符串与其对应的控制器类/方法之间存在一对一的关系.URI中的段通常遵循这种模式 -
your-domain.com/class/method/id/
第一个段表示应该调用的控制器类.
的第二区段表示类功能,或方法,即应被调用.
的第三,以及任何额外的节段,表示ID和将被传递到控制器的任何变量.
在某些情况下,您可能希望更改此默认路由机制.CodeIgniter提供了一些工具,您可以通过它来设置自己的路由规则.
有一个特定的文件,您可以处理所有这些.该文件位于application/config/routes.php(您已经知道).您将找到一个名为$ route的数组,您可以在其中自定义路由规则.$ route数组中的键将决定路由的内容,值将决定路由的位置.CodeIgniter中有三条保留路由.
$路线[ 'default_controller']
如果URI不包含数据,则此路由指示应加载哪个控制器类,这是人们加载根URL时的情况.建议您使用默认路由,否则将显示404页面.我们可以在这里设置网站的主页,以便默认加载.
$路线[ '404_override']
此路由指示如果找不到请求的控制器,应加载哪个控制器类.它将覆盖默认的404错误页面.它不会影响the show_404()
功能,它将继续加载默认error_404.php
文件application/views/errors/error_404.php.
$路线[ 'translate_uri_dashes']
布尔值显而易见,这不是一条路线.此选项使您可以使用控制器和方法URI段中的下划线自动替换短划线(' - '),从而在需要时节省其他路径条目.这是必需的,因为破折号不是有效的类或方法名称字符,如果您尝试使用它,将导致致命错误.
观看此视频,了解基本概念
请参阅此文档