💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
ThinkPHP`5.0`在没有启用路由的情况下典型的URL访问规则是: >[info] `http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]` ## URL大小写 默认情况下,`URL`是不区分大小写的(可在配置文件中键入`'url_convert' => false,` 设置`URL`访问严格区分大小写),也就是说`URL`里面的**模块/控制器/操作名**会自动转换为小写,控制器在最后调用的时候会转换为驼峰法处理。 例如: ~~~ http://localhost/index.php/Index/BlogTest/read // 和下面的访问是等效的 http://localhost/index.php/index/blogtest/read ~~~ 这种URL不区分大小写情况下,如果要访问驼峰法的控制器类,则需要使用: ~~~ http://localhost/index.php/Index/blog_test/read ~~~ ## 隐藏入口文件 在ThinkPHP5.0中,出于优化的URL访问原则,还支持通过URL重写隐藏入口文件,下面以`Apache`为例说明隐藏应用入口文件index.php的设置。 下面是Apache的配置过程,可以参考下: 1、`httpd.conf`配置文件中加载了`mod_rewrite.so`模块 2、`AllowOverride None`将`None`改为`All` 3、在应用入口文件同级目录添加`.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> ~~~ 可以去掉URL地址里面的入口文件`index.php`,但是需要额外配置WEB服务器的重写规则。 以`Apache`为例,需要在入口文件的同级添加`.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> ~~~ 如果用的`phpstudy`,规则如下: ~~~ <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule> ~~~ 如果`index.php文件存放在public中`,规则如下: ~~~ <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ public/index.php [L,E=PATH_INFO:$1] </IfModule> ~~~ 接下来就可以使用下面的URL地址访问了 ~~~ http://tp5.com/index/index/index http://tp5.com/index/index/hello ~~~ 如果你使用的`apache`版本使用上面的方式无法正常隐藏`index.php`,可以尝试使用下面的方式配置`.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> ~~~ 如果是`Nginx`环境(特别是phpstudy的nginx环境)的话,可以在`Nginx.conf`中添加: ~~~ location / { // …..省略部分代码 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } ~~~