伪静态

FastAdmin中我们可以快速的使用伪静态配置来对插件页面的URL进行伪静态处理。

DTJFdBIsUiOpYtKZlXviJWwBkAlPUQHFvjPMsg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

伪静态配置

GEThyLtkcOiWnJoMWOnd4dZRU9zGNqwvX+8I3g==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

首先我们需要在addons/mydemo/config.php中添加伪静态配置项,如下图
image.png

QVDBPWhjmSzXqUux1Ve/chgkG1bcPFOGDr94jA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

代码如下:

MpUvAHJmeygQtFIZrKm0hFONvlcv8RGAcNeFPA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
[
    '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'  => '',
],
bVFXGDspwNfOTLoyM3o/9I16D/hGDoS54XL2Qg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

通过以上配置,我们在使用addon_url函数来生成URL时,返回值将是处理过的URL,例如

QyYZkMzHgjcEmaKAHK6Fo2kT/YxOs+llspycfg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
$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);
JnaLPWQCZcxTqsISRVBEHQGT3ttPUU/PoOAGmQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

上面的结果将返回

KywndoFhRYMBgVLvp5EvlZz1Glezd4ZqAPf/5Q==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
/mydemo.html
/mydemo/test/myname.html?id=123
http://www.fa.com/mydemo/test/myname.html?id=123
MtVqLvNeKZwGunzyq0udxAqIulNVRsb79S72yA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

我们的伪静态配置中的:name会被自动替换成addon_url第二个参数中的:name键的值。
服务端我们可以使用$this->request->param('name')来获取:name对应的值。

UrwczCYSabeFqQlWM5oqNPlSIYFP8hau7O05mw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

温馨提示

UFVEQSZsJYkGTPwdwj10/Olr/Wuro8Q53Hnrdg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

伪静态配置的键值数组中的值伪静态规则必须以/插件标识/开头

sJBHvRtocVLynabMDzbRDEXv45pgnYUGn3HLEQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

绑定域名

GxceLHZBORVyTwACYsanFULx88yxEP7T8xSPrA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

如果需要让我们的插件支持二级域名,可以在addons/mydemo/config.php中添加一项域名配置项,如图:
image.png

OHuvqtnLjeCSDhPwsIoeDaRI45tcvs4X7zRwLg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

代码如下:

wPmLKgyuSzXHEAMtjM6Yjyjiv2MDP+DMyBZ4rw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
[
    'name'    => 'domain',
    'title'   => '绑定二级域名前缀',
    'type'    => 'string',
    'content' =>
        [],
    'value'   => '',
    'rule'    => '',
    'msg'     => '',
    'tip'     => '',
    'ok'      => '',
    'extend'  => '',
],
CqvSGrBJImwutfMV8Upr65qfJ2ZBxotsPlm/Rw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

该配置项默认为空,如果要使用二级域名生效,必须配置application/config.php中的url_domain_deploytrue时才会生效。
注意这里的value值仅是域名前缀,比如需要绑定域名book.mydemo.com,则这里只需输入book即可。

eijULgFrxkBMNcJShfgnlhm/HuxALLftr70afA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

绑定了二级域名后,我们的addon_url函数会自动做相应的前缀处理。

NWfUntvVdCbDQKBeUFxCOuWX0HtX1/M5JATGpg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

自定义路由

DrAEMUvNKZqRYyeX6JOIVRu+mxoiTifaXP51Ww==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

如果我们需要为特殊的URL规则添加伪静态匹配,可以通过修改application/extra/route.php,添加伪静态规则,如下:

cWCkqxOrpMXonTPKHT0Ko6IceW+kSNPABEIWaw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
//addon: 应用插件标识
//controller: 控制器
//action: 请求方法
\think\Route::rule('/city', "\\think\\addons\\Route@execute?addon=mydemo&controller=city&action=index");
mYaPydJShDOlucUf81pNCdFXUxXEBD6BiqP8/w==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

因为我们是开发插件,我们建议是通过行为事件,在Mydemo.php中添加appInit方法,如下:

NQZUsGTdCIbymEvSBl39bDGXjPgKD6zIxTvsWg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
/**
 * app 初始化
 */
public function appInit()
{
    \think\Route::rule('/city', "\\think\\addons\\Route@execute?addon=mydemo&controller=city&action=index");
}
PeLmvydoTBbANcUIjcSsF0kwCJp+6FOpQPVfCA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

来实现插件自定义路由的规则。

文档最后更新时间:2024-08-23 16:26:07
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。

文档
目录

深色
模式

切换
宽度