codeigniter中的routes.php是什么

时间:2017-01-16 05:38:07

标签: php codeigniter

sigma = 2e-3; rbfKernel = @(X,Y) exp(-sigma .* pdist2(X,Y,'euclidean').^2); for i = 1:len % leave one out cross validation data_train = data_reduced; % After PCA , data reduced is 32X3 data_test = data_reduced(i,:); data_train(i,:) = []; group_Train = group; group_test = [group(i)]; group_Train(i) = []; numTrain=size(data_train,1); numTest=size(data_test,1); K = [ (1:numTrain)' , rbfKernel(data_train,data_train) ]; KK = [ (1:numTest)' , rbfKernel(data_test,data_train) ]; SVMClass=svmtrain(group_Train, K, '-t 4'); [predClass]=svmpredict(group_test,KK, SVMClass); class = [class predClass]; end routes.php的功能绝对是什么?

我的老师接受了有关它的教导,并表示如果你不使用例如以下的路线,你的观点将无效:

codeigniter以及它的一切!

但对我而言,它不使用任何路线。我不知道为什么要使用路线。这只是浪费时间。谁能解释一下?

3 个答案:

答案 0 :(得分:5)

在codeigniter中,PHP文件以不同的方式提供,而不是直接从浏览器访问PHP文件。此过程称为路由

我们的代码无需重写 routes.php中的网址即可使用。

我们都希望以更方便的方式显示我们的网页,以便它对访问者(当然也包括搜索引擎)更有意义。例如,只需通过检查浏览器地址栏中的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友好网址转换为服务器代码可以轻松理解的格式/将请求驱动到相应的请求处理程序脚本的技术。

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

your-domain.com/class/method/id/
  • 第一个段表示应该是的控制器类 调用。
  • 第二个段表示类功能或方法 应该被称为。
  • 第三以及任何其他细分代表ID和任何细分 将传递给控制器​​的变量。

在某些情况下,您可能希望更改此默认路由机制。 CodeIgniter提供了用于设置自己的路由规则的工具。

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

<强> $路线[&#39; default_controller&#39;]

此路由指示应该加载哪个控制器类,如果URI不包含数据,那么当人们加载根URL时就是这种情况。建议您使用默认路由,否则将显示404页面。我们可以在这里设置网站的主页,以便默认加载。

<强> $路线[&#39; 404_override&#39;]

此路由指示如果找不到请求的控制器,应加载哪个控制器类。它将覆盖默认的404错误页面。它不会影响the show_404()函数,后者将继续加载error_404.php

中的默认application/views/errors/error_404.php.文件

<强> $路线[&#39; translate_uri_dashes&#39;]

布尔值显而易见,这不是一条路线。此选项使您可以使用控制器和方法URI段中的下划线自动替换短划线(' - '),从而在需要时节省其他路径条目。这是必需的,因为破折号不是有效的类或方法名称字符,如果您尝试使用它,将导致致命错误。

Watch this video for a basic idea

Refer this documentation too

答案 1 :(得分:1)

在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'];

答案 2 :(得分:0)

在codeigniter中路由一个主要功能,用于用户友好的URL和SEO友好的谷歌搜索。

这是什么意思: 如果有任何用户搜索了您网站上的任何产品,那么该网址就是 www.domain.in/categalog/Deskstop-Intel-124343 现在在这种情况下,url是用户友好的,如何解释它在路由中维护。

每当网址被点击时,控制流向routesroutescontroller

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

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

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