前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[CodeIgniter4]-CodeIgniter URL

[CodeIgniter4]-CodeIgniter URL

作者头像
landv
发布2020-03-05 16:18:41
2.2K0
发布2020-03-05 16:18:41
举报
文章被收录于专栏:landvlandv

CodeIgniter URL

在默认情况下,CodeIgniter 中的 URL 被设计成对搜索引擎和用户友好的样式。 不同于使用传统的在动态系统中使用代词的标准 “查询字符串” 的方式,CodeIgniter 使用基于段的方法:

example.com/news/article/my_article

URI 分段

如果遵循模型-视图-控制器模式,那么 URI 中的每一段通常表示下面的含义:

example.com/class/method/ID
  1. 第一段表示要调用的控制器  ;
  2. 第二段表示要调用的类中的 函数 或 方法 ;
  3. 第三段以及后面的段代表传给控制器的参数,如 ID 或其他任何变量;

URI 类 和 URL 辅助函数 包含了一些函数可以让你更容易的处理 URI 数据。此外,可以通过 URI 路由 的方式进行重定向你的 URL 从而使得程序更加灵活。

移除 index.php 文件

默认情况,你的 URL 中会包含 index.php 文件:

example.com/index.php/news/article/my_article

如果你的服务器支持重写 URL ,那么通过 URL 重写,我们可以轻易的去除这个文件。在不同的服务器中,处理方式各异,故而如下我们主要展示两个最为通用的Web服务器。

Apache服务器

Apache需要开启 mod_rewrite 扩展。当开启时,我们可以使用一个 .htaccess 文件以及一些简单的规则来实现 URL 重写。如下为这个文件的一个样例,其中使用了”否定“方法来排除某些不需要重定向的项目:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

在上面的例子中,除已存在的目录和文件外,其他的 HTTP 请求都会经过你的 index.php 文件。

注解

这些规则并不是对所有服务器配置都有效。

注解

确保使用上面的规则时,排除掉那些你希望能直接访问到的资源。

NGINX

在NGINX中,我们可以定义一个 location 块并用 try_files 导向来取得如上文中 Apache 配置一样的效果:

location / {
    try_files $uri $uri/ /index.php/$args;
}

服务器将会首先寻找符合对应 URI 的文件或目录(对于每个文件,通过根目录和别名目录来构建其完整的路径),然后再将其他的请求发送至 index.php 文件中。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CodeIgniter URL
    • URI 分段
      • 移除 index.php 文件
        • Apache服务器
        • NGINX
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档