TP5路由相关

1、入口文件


2、隐藏入口(index.php)文件

  • a、开始apache的重写(httpd.conf),去掉 #号

    • LoadModule rewrite_module modules/mod_rewrite.so
  • b、设置访问权限(vhosts.conf)

    • AllowOverride None 改为 ALL

      <VirtualHost *:80>
      DocumentRoot "D:\www\thinkphp5.0.21\public"
      ServerName dev.tp5.com
      ServerAlias dev.tp5.com
        <Directory "D:\www\thinkphp5.0.21\public">
        Options FollowSymLinks ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
       Require all granted
        </Directory>
      </VirtualHost>
  • c、在网站根目录public下新建.htaccess文件

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

3、路由模式

  • a、普通模式

    • 定义:关闭路由,使用默认PATH_INFO方式URL
    • 形式:http://dev.tp5.com/index.php/User/index
    • 如何设置(D:\www\thinkphp5.0.21\application\config.php)

      // 是否开启路由
      'url_route_on'           => false,
      // 是否强制使用路由
      'url_route_must'         => false,
  • b、混合模式

    • 定义:开启路由,并使用录用定义+默认PATH_INFO方式混合
    • 如何设置(D:\www\thinkphp5.0.21\application\config.php)

      // 是否开启路由
      'url_route_on'           => true,
       // 是否强制使用路由
      'url_route_must'         => false,
  • c、强制模式

    • 定义:开启路由,并设置必须定义路由才能访问
    • 如何设置(D:\www\thinkphp5.0.21\application\config.php)

      // 是否开启路由
      'url_route_on'           => true,
       // 是否强制使用路由
      'url_route_must'         => true,

4、设置路由

  • a、设置路由文件:(D:\www\thinkphp5.0.21\application\route.php)
  • b、如何设置

    // 引入系统类
    use think\Route;
    
    // 定义路由规则
    // 设置路由后,就不能使用PATH_INFO访问了
    // 静态地址路由
    Route::rule('/','index/Index/index');
    
    // 带参数的路由
    // 单个参数
    Route::rule('article/:id','index/Index/article');
    // 多个参数
    Route::rule('time/:year/:month','index/Index/shijian');
    // 可选参数
    Route::rule('time/:year/[:month]','index/Index/shijian');
    // 全动态路由
    Route::rule(':a/:b','index/Index/dongtai');
    // 完全匹配
    Route::rule('test1$','index/Index/test1');
    http://dev.tp5.com/test1 // 可以访问
    http://dev.tp5.com/test1/1 // 不可以访问
    // 额外参数
    Route::rule('test2','index/Index/test2?id=1&name=jianggs');
发表新评论