tp5 url使用php参数,URL访问 · ThinkPHP5.0完全开发手册 · 看云

ThinkPHP5.0中,URL访问规则在无路由启用时分为HTTP和命令行两种,均采用PATH_INFO模式。URL不区分大小写,但可配置为大小写敏感。隐藏入口文件可通过URL重写实现,Apache配置示例给出。
摘要由CSDN通过智能技术生成

## URL设计

ThinkPHP`5.0`在没有启用路由的情况下典型的URL访问规则是:

>[info] #### `http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]`

支持切换到命令行访问,如果切换到命令行模式下面的访问规则是:

>[info] #### >php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...]

可以看到,无论是URL访问还是命令行访问,都采用`PATH_INFO`访问地址,其中`PATH_INFO`的分隔符是可以设置的。

注意:`5.0`取消了URL模式的概念,并且**普通模式的URL访问不再支持**,但参数可以支持普通方式传值,例如:

>[info] #### >php.exe index.php(或者其它应用入口文件) 模块/控制器/操作?参数名=参数值&...

如果不支持PATHINFO的服务器可以使用兼容模式访问如下:

>[info] #### `http://serverName/index.php(或者其它应用入口文件)?s=/模块/控制器/操作/[参数名/参数值...]`

必要的时候,我们可以通过某种方式,省略URL里面的模块和控制器。

## URL大小写

默认情况下,`URL`是不区分大小写的,也就是说 `URL`里面的**模块/控制器/操作名**会自动转换为小写,控制器在最后调用的时候会转换为驼峰法处理。

例如:

~~~

http://localhost/index.php/Index/Blog/read

// 和下面的访问是等效的

http://localhost/index.php/index/blog/read

~~~

如果访问下面的地址

~~~

http://localhost/index.php/Index/BlogTest/read

// 和下面的访问是等效的

http://localhost/index.php/index/blogtest/read

~~~

在这种URL不区分大小写情况下,如果要访问驼峰法的控制器类,则需要使用:

~~~

http://localhost/index.php/Index/blog_test/read

~~~

> 模块名和操作名会直接转换为小写处理。

如果希望`URL`访问严格区分大小写,可以在应用配置文件中设置:

~~~

// 关闭URL中控制器和操作名的自动转换

'url_convert' => false,

~~~

一旦关闭自动转换,URL地址中的控制器名就变成大小写敏感了,例如前面的访问地址就要写成:

~~~

http://localhost/index.php/Index/BlogTest/read

~~~

但是下面的URL访问依然是有效的:

~~~

http://localhost/index.php/Index/blog_test/read

~~~

下面的URL访问则无效:

~~~

http://localhost/index.php/Index/blogtest/read

~~~

>[danger] 需要注意:路由规则中定义的路由地址是按照控制器名的实际名称定义(区分大小写)。

## 隐藏入口文件

在ThinkPHP5.0中,出于优化的URL访问原则,还支持通过URL重写隐藏入口文件,下面以`Apache`为例说明隐藏应用入口文件index.php的设置。

下面是Apache的配置过程,可以参考下:

1、`httpd.conf`配置文件中加载了`mod_rewrite.so`模块

2、`AllowOverride None` 将`None`改为 `All`

3、在应用入口文件同级目录添加`.htaccess`文件,内容如下:

~~~

Options +FollowSymlinks -Multiviews

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

~~~

更多其它环境的隐藏入口文件参考后面的 [URL重写](177576)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值