国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

thinkphp學習筆記6 url模式

2020-03-22 19:12:52
字體:
來源:轉載
供稿:網友
  •   入口文件是應用的唯一入口,因為可以多入口,每個應用可以對應一個入口文件,系統會從rul參數中解析當前請求的模塊,控制器,操作。ThinkPHP是區分大小寫的,考慮到linux是區分大小寫的,所以在ThinkPHP中模塊,控制器,模型等都是區分大小寫的,并且使用駝峰命名規則。

      如果我們直接訪問入口文件index.php,url中沒有給出模塊,控制器,操作,系統會默認訪問Home模塊下的Index控制器下的index操作,因此下面的兩種訪問方法得到的結果是一樣的:

    1. http://serverName/index.php
    2. http://serverName/index.php/Home/Index/index

      這種URL模式是PATHINFO模式,ThinkPHP支持四種url模式,列表如下:

      URL模式    URL_MODEL設置
      普通模式     0
      PATHINFO模式 1
      REWRITE模式 2
      兼容模式     3

      如果整個項目使用相同的url模式可以在應用配置文件中設置url模式,如果不同的模塊設置不同的模式,可以在模塊的配置文件中設置。前面一句"應用配置文件",是那個文件呢,是thinkphp/Application/Common/Conf/config.php這個嗎,后面的好理解,每一個模塊對用一個config文件,Admin模塊對應的是thinkphp/Application/Admin/Conf/config.php,Home模塊對應的配置文件是thinkphp/Application/Home/Conf/config.php

      普通模式

      普通模式是使用傳統的get傳參來指定當前的模塊,控制,操作例如:http://servername/?m=home&c=user&a=login&var=html' target='_blank'>value,經我實驗,即使把URL_MODEL設置成1,2,3還是可以使用這種get傳參的方式來發訪問,PATH_INFO變量放在thinkphp/ThinkPHP/Conf/convention.php文件里,我的設置如下:

      圖1

      訪問界面如下:

      圖2

      修改模塊為Home模塊訪問結果如下:

      圖3

      這個感覺有點亂了,既然設置成3le,還是可以使用第一種模式呢?

      PATH_INFO模式

      PATHINFO模式是系統的默認URL模式,提供了最好的SEO支持,系統內部已經做了環境的兼容處理,所以能夠支持大多數的主機環境。對應上面的URL模式,PATHINFO模式下面的URL訪問地址是: http://localhost/index.php/home/user/login/var/value/

      還可以修改參數的分分隔符,例如我現在配置如下:

      圖4

      現在可以使用下滑下劃線來區分參數了,如下:

      圖5

      REWRITE模式

      REWRITE模式是在PATHINFO模式的基礎上添加了重寫規則的支持,可以去掉URL地址里面的入口文件index.php,但是需要額外配置WEB服務器的重寫規則。如果是Apache則需要在入口文件的同級添加.htaccess文件,內容如下:

      <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>

      接下來,就可以用下面的URL地址訪問了: http://localhost/home/user/login/var/value

      兼容模式


      兼容模式是用于不支持PATHINFO的特殊環境,URL地址是: http://localhost/?s=/home/user/login/var/value

      可以更改兼容模式變量的名稱定義,例如:

      'VAR_PATHINFO' => 'pathinfo'PATHINFO參數分隔符對兼容模式依然有效,例如:

      // 更改PATHINFO參數分隔符'URL_PATHINFO_DEPR'=>'-', 使用以上配置的話,URL訪問地址可以變成: http://localhost/?s=/home-user-login-var-value

      兼容模式配合Web服務器重寫規則的定義,可以達到和REWRITE模式一樣的URL效果。

      例如,我們在Apache下面的話,.htaccess文件改成如下內容:

      <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]</IfModule>


      就可以和REWRITE模式一樣訪問下面的URL地址訪問了: http://localhost/home/user/login/var/value

      PHP編程

      鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 蒙山县| 车险| 扎囊县| 阜新| 望城县| 枞阳县| 巴彦淖尔市| 平利县| 东兰县| 三穗县| 阿拉尔市| 绍兴市| 将乐县| 富阳市| 桦南县| 海晏县| 盈江县| 长春市| 酒泉市| 项城市| 都江堰市| 新龙县| 凤翔县| 海盐县| 玉山县| 西昌市| 理塘县| 丹巴县| 大悟县| 九寨沟县| 临高县| 城固县| 措美县| 开封市| 定南县| 太仆寺旗| 巫溪县| 曲松县| 宜君县| 武功县| 那曲县|