伪静态
在FastAdmin中我们可以快速的使用伪静态配置来对插件页面的URL进行伪静态处理。
伪静态配置
首先我们需要在addons/mydemo/config.php中添加伪静态配置项,如下图
代码如下:
[
'name' => 'rewrite',
'title' => '伪静态',
'type' => 'array',
'content' =>
[],
'value' =>
[
'index/index' => '/mydemo/$', //index/index表示插件控制器Index.php中的index方法
'index/test' => '/mydemo/test/[:name]',
],
'rule' => 'required',
'msg' => '',
'tip' => '',
'ok' => '',
'extend' => '',
],通过以上配置,我们在使用addon_url函数来生成URL时,返回值将是处理过的URL,例如
$url1 = addon_url('mydemo/index/index');
$url2 = addon_url('mydemo/index/index', [':name'=>'myname', 'id'=>123]);
$url3 = addon_url('mydemo/index/index', [':name'=>'myname', 'id'=>123], true, true);上面的结果将返回
/mydemo.html
/mydemo/test/myname.html?id=123
http://www.fa.com/mydemo/test/myname.html?id=123我们的伪静态配置中的:name会被自动替换成addon_url第二个参数中的:name键的值。
服务端我们可以使用$this->request->param('name')来获取:name对应的值。
温馨提示
伪静态配置的键值数组中的值伪静态规则必须以/插件标识/开头
绑定域名
如果需要让我们的插件支持二级域名,可以在addons/mydemo/config.php中添加一项域名配置项,如图:
代码如下:
[
'name' => 'domain',
'title' => '绑定二级域名前缀',
'type' => 'string',
'content' =>
[],
'value' => '',
'rule' => '',
'msg' => '',
'tip' => '',
'ok' => '',
'extend' => '',
],该配置项默认为空,如果要使用二级域名生效,必须配置application/config.php中的url_domain_deploy为true时才会生效。
注意这里的value值仅是域名前缀,比如需要绑定域名book.mydemo.com,则这里只需输入book即可。
绑定了二级域名后,我们的addon_url函数会自动做相应的前缀处理。
自定义路由
如果我们需要为特殊的URL规则添加伪静态匹配,可以通过修改application/extra/route.php,添加伪静态规则,如下:
//addon: 应用插件标识
//controller: 控制器
//action: 请求方法
\think\Route::rule('/city', "\\think\\addons\\Route@execute?addon=mydemo&controller=city&action=index");因为我们是开发插件,我们建议是通过行为事件,在Mydemo.php中添加appInit方法,如下:
/**
* app 初始化
*/
public function appInit()
{
\think\Route::rule('/city', "\\think\\addons\\Route@execute?addon=mydemo&controller=city&action=index");
}来实现插件自定义路由的规则。
文档最后更新时间:2024-08-23 16:26:07
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。
未解决你的问题?请到「问答社区」反馈你遇到的问题