如何从 CodeIgniter 中的 URL 中删除控制器和函数名称

Posted

技术标签:

【中文标题】如何从 CodeIgniter 中的 URL 中删除控制器和函数名称【英文标题】:How to remove Controller and function name from URL in CodeIgniter 【发布时间】:2011-11-28 01:33:37 【问题描述】:

我在使用 CI 开发的一个应用程序时遇到了严重问题。 目前我的网址如下所示

http://www.example.com/content/index/mission/

我想从 URL 中删除 /content/index/ 所以,它应该看起来像这样。

http://www.example.com/mission

我也有路由和 .htaccess 方法。但似乎没有任何效果。

这是我的 .htaccess 文件

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|images|css/js/style/system/feature_tab/robots\.txt)
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ /index.php/$1 [QSA,L]

我也尝试通过在 config/router.php 中定义路由器来路由 CI,但它不起作用:(

【问题讨论】:

确保您已启用 mod_rewrite 并在 apache 配置中将 AllowOverride 设置为 All。 (假设你在routes.php中正确创建了路由) 【参考方案1】:

对于您的具体示例,您需要创建一个映射路线(在 application/config/routes.php 中)

$route['mission/']

"content/index/mission"

换句话说,$route['mission/'] = "content/index/mission";

查看CI documentation regarding URI routing了解更多信息

【讨论】:

现在我从 $route['mission/'] 中删除了斜杠,它会将我带到主页。 @Salman:你有什么相关的东西可以从你的 .htaccess 文件中发布吗? http://www.example.com/content/index/mission/ 不会给你 404,对吗? 是的,它不会给我 404 错误。我已经编辑了我的问题,现在它也有我的 .htaccess 文件。感谢您的快速回复:) 如果你删除你的 .htaccess 会发生什么(但是在 $route['mission/'] 中保留尾部斜杠)并尝试 http://www.example.com/index.php/mission @SalmanAslam:routes.php 中定义了其他路由规则吗?如果是这样,您可以发布它们吗?【参考方案2】:

您可以进入 application/config/routes.php 并设置您自己的 URL 路由规则。 (即使用与控制器/功能完全不同的东西)。应该有一个名为 $route 的数组,它可以让您分配 url => 控制器/函数的映射。希望这可以帮助。

看看这个指南,它就在你的小巷里:

http://codeigniter.com/user_guide/general/routing.html

【讨论】:

以上是关于如何从 CodeIgniter 中的 URL 中删除控制器和函数名称的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Codeigniter 4 中的 url 中删除 public/index.php/

如何从 CodeIgniter 中的 URL 中删除控制器和函数名称

如何从 Codeigniter 中的 URL 中删除“&per_page=”

codeigniter 从 url 获取值

如何从Codeigniter中的URL中删除“&per_page =”

如何从codeigniter中的模型生成json格式