codeigniter中的routes.php是什么



routes.phpcodeigniter中的函数肯定是什么?

我的老师被教导了这一点,他说如果你不使用诸如之类的路线,你的观点就不会奏效

$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中得到一个简短的想法。此外,与早期的URL相比,搜索引擎提供了更多的价值,这就是为什么它们被称为"搜索引擎友好的URL"。所以,无论你选择什么原因,最好总是使用SEO友好的URL。好的,现在,我们决定让我们的网站对SE/访问者更友好,并希望使用这些URL。现在,我们应该如何开发应用程序来将这些url映射到原始请求处理程序脚本?

Url重写/路由实际上是将这种seo友好的Url转换为服务器代码可以轻松理解的格式/将请求驱动到相应的请求处理程序脚本的技术。

CodeIgniter拥有用户友好的URI路由系统,因此您可以轻松地重新路由URL。通常,URL字符串与其对应的控制器类/方法之间存在一对一的关系。URI中的段通常遵循以下模式−

your-domain.com/class/method/id/
  • 第一个段表示应该调用
  • 第二个段表示类函数或方法应该调用
  • 第三个和任何附加段表示ID和将传递给控制器的变量

在某些情况下,您可能需要更改此默认路由机制。CodeIgniter提供了一种工具,您可以通过它设置自己的路由规则。

有一个特定的文件,您可以在其中处理所有这些。该文件位于application/config/routes.php(您已经知道了)。您会发现一个名为$route的数组,您可以在其中自定义路由规则。$route数组中的键将决定路由什么,值将决定路由到哪里。CodeIgniter中有三条保留路由。

$route['default_controller']

如果URI不包含任何数据,则此路由指示应该加载哪个控制器类,当人们加载根URL时就会出现这种情况。我们鼓励您使用默认路线,否则默认情况下会出现404页面。我们可以在这里设置网站的主页,这样它将默认加载。

$route['404_override']

此路由指示如果找不到请求的控制器,则应加载哪个控制器类。它将覆盖默认的404错误页面。它不会影响the show_404()功能,它将继续在application/views/errors/error_404.php.中加载默认的error_404.php文件

$route['translate_uri_dashe']

从布尔值可以明显看出,这并不完全是一条路线。此选项使您能够自动将控制器和方法URI段中的短划线('-)替换为下划线,从而在需要时为您节省额外的路由条目。这是必需的,因为短划线不是有效的类或方法名称字符,如果您尝试使用它,它将导致致命错误。

观看此视频了解的基本想法

也可参考本文档

In CI代码将在没有routes.php的情况下运行。routes.php用于自定义url/routes,就像你有类似的url一样

example.com/pages/about_us

其中"pages"是你的控制器,"about_us"是该控制器中的方法,如果你想在没有example.com/about_us这样的控制器的情况下显示url,那么你需要以这种方式使用routes.php

$route['about_us'] = ['pages/about_us'];

codeigner中的路由是用于用户友好URL和SEO友好谷歌搜索的主要功能之一。

这意味着什么:如果任何用户在您的网站上搜索任何产品,则URL将www.domain.in/categalog/Deskstop-Intel-124343现在,在这种情况下,url是用户友好的——如何解释它是在路由中维护的。

每次url被命中时,控制流到routes和从routescontroller

$route['product/(:any)'] = 'catalog/product_lookup';

现在categlog/product_lookup被解释为product/any意味着有一个控制器Product接受Id/text作为输入。

这就像根据我们的要求制作用户定义的url一样简单。

最新更新