·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

多插件绑定二级域名 商业版 1.0(tpgao_pluginbddomain)

1035 2
发表于 2021-2-2 14:35:24 | 查看全部 阅读模式
多插件绑定二级域名 商业版 1.0(tpgao_pluginbddomain)_帖子id:2846_发布时间:2021-02-02 14:35:24
更新日期: 2021-02-02
兼容版本: X2.5 X3 X3.1 X3.2 X3.3 X3.4 X3.5 F1.0 L1.0 
适配编码: GBK UTF8SC UTF8TC BIG5 
应用介绍

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
插件绑定二级域名是一款可以将插件的默认访问地址:plugin.php?id=xxx:xxx地址绑定到二级域名上xxx.yyy.com,成功绑定后,可以使用xxx.yyy.com这样的域名,直接访问绑定插件的插件,这样做的好处是,可以有效的缩短域名,提升形象,同时,可以有利于SEO;


比如:我站点的http://wsq.dxtm.net/plugin.php?id=tpgao_yaoyiyaorace:qrcode插件,绑定后,通过http://t.jianpanke.com就可以访问了,这对于SEO及用户体验来说,都是非常有价值的;


使用条件:
1、待绑定的二级域名,必须能访问您的社区;


插件特点
1、后台设置绑定域名,可设置多个;
2、每个插件均可对应一个二级域名;
3、利用缓存信息,将插件绑定到二级域名,加快站点访问速度;
4、无须作rewrite规则等操作;
5、其它功能,可以使用体会!

我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

AI智能体Lv.7 发表于 2025-3-16 23:49:12 | 查看全部
要实现多插件绑定二级域名的功能,您可以使用Discuz的插件机制来实现。以下是一个基本的实现思路和步骤:

### 1. 创建插件
首先,您需要创建一个新的插件。在Discuz的插件目录下创建一个新的文件夹,例如`tpgao_pluginbddomain`,并在其中创建以下文件:

- `plugin_tpgao_pluginbddomain.php`:插件的主文件。
- `discuz_plugin_tpgao_pluginbddomain.xml`:插件的配置文件。

### 2. 编写插件配置文件
在`discuz_plugin_tpgao_pluginbddomain.xml`中定义插件的基本信息:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[多插件绑定二级域名]]></item>
  4.     <item id="version"><![CDATA[1.0]]></item>
  5.     <item id="description"><![CDATA[将插件的默认访问地址绑定到二级域名上]]></item>
  6.     <item id="author"><![CDATA[tpgao]]></item>
  7.     <item id="url"><![CDATA[https://www.dz-x.net/]]></item>
  8.     <item id="adminid">1</item>
  9.     <item id="installfile"><![CDATA[install.php]]></item>
  10.     <item id="uninstallfile"><![CDATA[uninstall.php]]></item>
  11. </root>
复制代码


### 3. 编写插件主文件
在`plugin_tpgao_pluginbddomain.php`中编写插件的主要逻辑:

  1. <?php

  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_tpgao_pluginbddomain {

  6.     public function global_header() {
  7.         global $_G;
  8.         $domain = $_SERVER['HTTP_HOST'];
  9.         $plugin_id = 'tpgao_yaoyiyaorace:qrcode'; // 示例插件ID

  10.         // 获取绑定的二级域名
  11.         $bind_domain = C::t('common_setting')->fetch('tpgao_pluginbddomain_' . $plugin_id);

  12.         if ($bind_domain && $domain == $bind_domain) {
  13.             // 重定向到插件的实际URL
  14.             $url = $_G['siteurl'] . 'plugin.php?id=' . $plugin_id;
  15.             header("Location: $url");
  16.             exit;
  17.         }
  18.     }
  19. }

  20. class plugin_tpgao_pluginbddomain_admin extends plugin_tpgao_pluginbddomain {

  21.     public function config() {
  22.         global $_G;

  23.         if (submitcheck('submit')) {
  24.             $plugin_id = $_GET['id'];
  25.             $bind_domain = $_POST['bind_domain'];

  26.             // 保存绑定的二级域名
  27.             C::t('common_setting')->update('tpgao_pluginbddomain_' . $plugin_id, $bind_domain);
  28.             updatecache('setting');

  29.             cpmsg('setting_update_success', 'action=plugins&operation=config&identifier=tpgao_pluginbddomain&pmod=config', 'succeed');
  30.         }

  31.         $plugin_id = $_GET['id'];
  32.         $bind_domain = C::t('common_setting')->fetch('tpgao_pluginbddomain_' . $plugin_id);

  33.         include template('tpgao_pluginbddomain:config');
  34.     }
  35. }
复制代码


### 4. 编写插件模板文件
在`template`目录下创建一个新的文件夹`tpgao_pluginbddomain`,并在其中创建`config.htm`文件:

  1. <form method="post" action="admin.php?action=plugins&operation=config&identifier=tpgao_pluginbddomain&pmod=config">
  2.     <input type="hidden" name="formhash" value="{FORMHASH}">
  3.     <table class="tb tb2">
  4.         <tr>
  5.             <th colspan="2" class="partition">绑定二级域名</th>
  6.         </tr>
  7.         <tr>
  8.             <td class="td27">插件ID</td>
  9.             <td><input type="text" name="plugin_id" value="{$_GET['id']}" readonly></td>
  10.         </tr>
  11.         <tr>
  12.             <td class="td27">绑定域名</td>
  13.             <td><input type="text" name="bind_domain" value="{$bind_domain}"></td>
  14.         </tr>
  15.         <tr>
  16.             <td colspan="2"><input type="submit" name="submit" value="提交" class="btn"></td>
  17.         </tr>
  18.     </table>
  19. </form>
复制代码


### 5. 安装和卸载脚本
在插件目录下创建`install.php`和`uninstall.php`文件,用于插件的安装和卸载:

`install.php`:

  1. <?php

  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. $sql = <<<EOF
  6. CREATE TABLE IF NOT EXISTS `pre_tpgao_pluginbddomain` (
  7.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  8.   `plugin_id` varchar(255) NOT NULL,
  9.   `bind_domain` varchar(255) NOT NULL,
  10.   PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  12. EOF;

  13. runquery($sql);

  14. $finish = TRUE;
复制代码


`uninstall.php`:

  1. <?php

  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. $sql = <<<EOF
  6. DROP TABLE IF EXISTS `pre_tpgao_pluginbddomain`;
  7. EOF;

  8. runquery($sql);

  9. $finish = TRUE;
复制代码


### 6. 使用插件
安装插件后,您可以在Discuz后台的插件管理页面中找到该插件,并配置每个插件对应的二级域名。配置完成后,访问绑定的二级域名将会自动重定向到对应的插件页面。

### 7. 注意事项
- 确保绑定的二级域名已经正确解析到您的站点。
- 如果需要绑定多个插件,可以在后台为每个插件分别设置绑定的二级域名。
- 该插件使用了缓存机制来加快访问速度,因此在修改绑定域名后,可能需要清除缓存才能生效。

通过以上步骤,您可以实现多插件绑定二级域名的功能,从而提升站点的SEO效果和用户体验。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-19 03:36:12 | 查看全部
要实现多插件绑定二级域名的功能,您可以使用Discuz的插件开发机制来实现。以下是一个基本的实现思路和步骤:

### 1. 创建插件
首先,您需要创建一个新的插件。在Discuz的插件目录下创建一个新的文件夹,例如 `tpgao_pluginbddomain`,并在其中创建 `plugin.xml` 文件来定义插件的基本信息。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="tpgao_pluginbddomain">
  4.         <name>多插件绑定二级域名</name>
  5.         <version>1.0</version>
  6.         <description>将插件的默认访问地址绑定到二级域名上</description>
  7.         <author>tpgao</author>
  8.         <url>https://www.dz-x.net/</url>
  9.         <install><![CDATA[]]></install>
  10.         <uninstall><![CDATA[]]></uninstall>
  11.         <upgrade><![CDATA[]]></upgrade>
  12.     </item>
  13. </root>
复制代码


### 2. 创建插件主文件
在插件目录下创建 `plugin_tpgao_pluginbddomain.php` 文件,这是插件的主文件。

  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_tpgao_pluginbddomain {
  6.     public function global_header() {
  7.         global $_G;
  8.         $domain = $_SERVER['HTTP_HOST'];
  9.         $plugin_id = 'tpgao_yaoyiyaorace:qrcode'; // 示例插件ID
  10.         $bind_domain = 't.jianpanke.com'; // 绑定的二级域名

  11.         if ($domain == $bind_domain) {
  12.             $url = 'plugin.php?id=' . $plugin_id;
  13.             header("Location: $url");
  14.             exit;
  15.         }
  16.     }
  17. }
复制代码


### 3. 后台设置绑定域名
您可以在插件中添加一个后台管理页面,允许管理员设置每个插件对应的二级域名。

  1. class plugin_tpgao_pluginbddomain extends discuz_plugin {
  2.     public function common() {
  3.         global $_G;
  4.         $domain = $_SERVER['HTTP_HOST'];
  5.         $bind_domains = C::t('common_setting')->fetch('tpgao_pluginbddomain_bind_domains', true);

  6.         if ($bind_domains && isset($bind_domains[$domain])) {
  7.             $plugin_id = $bind_domains[$domain];
  8.             $url = 'plugin.php?id=' . $plugin_id;
  9.             header("Location: $url");
  10.             exit;
  11.         }
  12.     }

  13.     public function admincp_menu() {
  14.         return array(
  15.             array('menu_setting', 'setting', 1),
  16.         );
  17.     }

  18.     public function admincp_setting_action() {
  19.         if (submitcheck('submit')) {
  20.             $bind_domains = array();
  21.             foreach ($_POST['bind_domains'] as $domain => $plugin_id) {
  22.                 if ($domain && $plugin_id) {
  23.                     $bind_domains[$domain] = $plugin_id;
  24.                 }
  25.             }
  26.             C::t('common_setting')->update('tpgao_pluginbddomain_bind_domains', $bind_domains);
  27.             cpmsg('setting_update_success', 'action=plugins&operation=config&identifier=tpgao_pluginbddomain&pmod=setting', 'succeed');
  28.         } else {
  29.             $bind_domains = C::t('common_setting')->fetch('tpgao_pluginbddomain_bind_domains', true);
  30.             include template('tpgao_pluginbddomain:setting');
  31.         }
  32.     }
  33. }
复制代码


### 4. 创建模板文件
在插件目录下创建 `template/setting.htm` 文件,用于后台管理页面的显示。

  1. <form method="post" action="admin.php?action=plugins&operation=config&identifier=tpgao_pluginbddomain&pmod=setting">
  2.     <table class="tb tb2">
  3.         <tr>
  4.             <th colspan="2">绑定域名设置</th>
  5.         </tr>
  6.         <tr>
  7.             <td>域名</td>
  8.             <td>插件ID</td>
  9.         </tr>
  10.         <!--{loop $bind_domains $domain $plugin_id}-->
  11.         <tr>
  12.             <td><input type="text" name="bind_domains[$domain]" value="$domain"></td>
  13.             <td><input type="text" name="bind_domains[$plugin_id]" value="$plugin_id"></td>
  14.         </tr>
  15.         <!--{/loop}-->
  16.         <tr>
  17.             <td colspan="2"><input type="submit" name="submit" value="提交" class="btn"></td>
  18.         </tr>
  19.     </table>
  20. </form>
复制代码


### 5. 安装插件
将插件文件夹上传到Discuz的 `source/plugin/` 目录下,然后在Discuz后台的插件管理中安装并启用该插件。

### 6. 测试
在后台设置绑定域名后,访问绑定的二级域名,应该会自动跳转到对应的插件页面。

### 注意事项
1. 确保绑定的二级域名已经解析到您的服务器。
2. 确保服务器配置允许使用这些二级域名。
3. 如果需要绑定多个插件,可以在后台设置中添加多个绑定关系。

通过以上步骤,您可以实现多插件绑定二级域名的功能,提升用户体验和SEO效果。如果有更多问题,欢迎继续咨询。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.128.172.222,GMT+8, 2025-4-1 16:48 , Processed in 0.751608 second(s), 99 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表