zoukankan      html  css  js  c++  java
  • [CodeIgniter4]-CodeIgniter URL

    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 文件中。

  • 相关阅读:
    Python 模块chardet安装 setup.py
    Windows下Python安装lxml
    intellij idea 如何更改比编辑器文本字体和大小
    [转]C#设计模式(8)-Builder Pattern
    [转]C#设计模式(4)-Simple Factory Pattern
    [转]C#委托的异步调用
    [转]浅谈C#中常见的委托
    C# 线程池
    [转]C#中的委托和事件(续)
    C#(.net)中的DllImport
  • 原文地址:https://www.cnblogs.com/landv/p/12395798.html
Copyright © 2011-2022 走看看