-1

我是 CodeIgniter 的新手。
我做了一个网站,我希望我的网址更短。
例如,现在的 url 是

http://example.com/planner/planner/index.php/planner/main

我想成为

 http://example.com/planner/planner/main. 

首先,我删除了 index.php 标记,但在那之后 url 给了我一个 404 错误。
我想删除 index.php 和控制器名称。

有人知道我该怎么做吗?

PS。我的 URL 仅适用于 index.php 标记...

4

2 回答 2

1

制作.htaccess

RewriteBase /
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L] 

编辑 MYAPPLICATION_FOLDER\config\config.php

$config['index_page'] = '';

阅读用户指南

http://ellislab.com/codeigniter/user-guide/general/urls.html

于 2013-02-14T06:30:32.597 回答
1

您可以使用以下代码从您的网址中删除 index.php。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

但是为了进一步缩短您的 url,您需要通过 codeIgniter 起诉路由重映射功能。您可以在 URL 路由下的codeigntier 用户指南中清楚地找到它。

路由规则在您的 application/config/routes.php 文件中定义。在其中您将看到一个名为 $route 的数组,它允许您指定自己的路由条件。可以使用通配符或正则表达式指定路由

 Wildcards

典型的通配符路由可能如下所示:

 $route['product/:num'] = "catalog/product_lookup";

在路由中,数组键包含要匹配的 URI,而数组值包含它应该重新路由到的目标。在上面的示例中,如果在 URL 的第一段中找到文字单词“product”,并且在第二段中找到数字,则使用“catalog”类和“product_lookup”方法。

您可以匹配文字值,也可以使用两种通配符类型:

(:num) 将匹配仅包含数字的段。(:any) 将匹配包含任何字符的段。

注意:路由将按照定义的顺序运行。较高的路线总是优先于较低的路线。例子

以下是一些路由示例:

   $route['journals'] = "blogs";

第一段中包含单词“journals”的 URL 将被重新映射到“blogs”类。

   $route['blog/joe'] = "blogs/users/34";

包含段 blog/joe 的 URL 将被重新映射到“blogs”类和“users”方法。ID 将设置为“34”。

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

第一个段为“product”的 URL,第二个段中的任何内容都将重新映射到“catalog”类和“product_lookup”方法。

   $route['product/(:num)'] = "catalog/product_lookup_by_id/$1";

第一个段为“product”,第二个段为数字的 URL 将被重新映射到“catalog”类,“product_lookup_by_id”方法将匹配作为变量传递给函数。

于 2013-02-14T06:32:27.327 回答