如何关闭织梦前台浏览?后台操作指南?

99ANYc3cd6
预计阅读时长 17 分钟
位置: 首页 织梦建站 正文

这里为您提供几种常见的实现方法,请根据您的需求选择,并务必在修改前备份原文件,以防万一。

织梦 后台关闭前台浏览
(图片来源网络,侵删)

完全禁止未登录用户访问前台(最严格)

这种方法会强制所有访问网站的访客(除了管理员)跳转到登录页面或指定页面。

实现原理: 在网站入口文件 index.php 中添加判断逻辑,检查用户的登录状态,如果未登录,则直接跳转。

操作步骤:

  1. 备份文件:

    织梦 后台关闭前台浏览
    (图片来源网络,侵删)
    • 备份您网站根目录下的 index.php 文件。
    • 备份 /include/helpers/extend.helper.php 文件(这个文件通常用来存放自定义的函数)。
  2. 创建一个自定义函数(可选,但推荐):

    • 打开 /include/helpers/extend.helper.php 文件。
    • 在文件末尾 ?> 之前,添加以下代码:
      // 检查用户是否已登录
      if (!defined('DEDERLAND')) {
      function check_user_login()
      {
          global $dsql;
          // 检查全局变量 $cfg_ml 是否存在,它代表了会员登录类
          if ($cfg_ml) {
              // $cfg_ml->M_ID > 0,表示已登录
              if ($cfg_ml->M_ID > 0) {
                  return true;
              }
          }
          // 如果未登录,返回 false
          return false;
      }
      }

      这个函数 check_user_login() 会帮助我们检查用户是否登录。

  3. 修改入口文件 index.php

    • 打开网站根目录下的 index.php 文件。
    • 找到类似 require_once(dirname(__FILE__)."/include/common.inc.php"); 的代码行。
    • 在这行代码的下面,添加以下判断逻辑:
      // 在 require_once("include/common.inc.php"); 之后添加

    // 1. 引入我们刚刚创建的自定义函数(如果创建了的话) // require_once(DEDEINC."/helpers/extend.helper.php");

    织梦 后台关闭前台浏览
    (图片来源网络,侵删)

    // 2. 检查用户登录状态 if ($cfg_ml->M_ID == 0) { // 如果用户未登录,则跳转到登录页面 // 你可以把 /member/index.php 换成你想要的任何页面,比如一个提示页面 header("Location: /member/index.php?gotopage=".urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])); exit(); }

    
    **代码解释:**
    *   `$cfg_ml->M_ID == 0`:这是判断用户是否已登录的核心,`$cfg_ml` 是织梦的会员登录对象,`M_ID` 是其用户ID,如果为0,表示未登录。
    *   `header("Location: ...")`:这是PHP的页面跳转函数。
    *   `/member/index.php`:这是织梦默认的会员登录页面,你可以修改成任何你想要的URL,`/login-tips.html`(一个自定义的提示页面)。
    *   `urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'])`:这一句的作用是,在用户跳转到登录页后,登录成功可以自动跳转回他最初想访问的页面,这是一种很好的用户体验。
  4. 完成:

    • 保存 index.phpextend.helper.php 文件。
    • 任何未登录的用户访问您的网站首页或任何由 index.php 驱动的页面(包括栏目页、文章页等),都会被强制跳转到登录页面。

仅禁止访问特定栏目(更灵活)

如果您只想禁止访客访问某些特定的栏目(会员资源”、“下载中心”等),而其他栏目可以正常浏览,可以使用此方法。

实现原理: 在栏目的列表模板(list_article.htm)和文章内容模板(article_article.htm)中,通过PHP代码判断当前访问者是否登录。

操作步骤:

  1. 备份模板文件:

    • 备份 /templets/default/list_article.htm (或您正在使用的栏目列表模板)。
    • 备份 /templets/default/article_article.htm (或您正在使用的文章内容模板)。
  2. 修改列表模板 list_article.htm

    • 在模板文件的开头,<html> 标签之前,添加PHP判断代码:
      [field:global name=autoindex runphp="yes"]
      if(@me == 1) {
      // 只在第一个循环时执行一次判断,避免重复判断
      global $cfg_ml;
      if($cfg_ml->M_ID == 0) {
          // 如果未登录,显示提示信息并停止执行后续模板
          @me = '<div style="text-align:center; padding:50px 0;">
                    <h2>该栏目仅对会员开放</h2>
                    <p>请<a href="/member/index.php">登录</a>后访问。</p>
                 </div>';
      } else {
          // 如果已登录,则正常显示模板内容
          @me = '';
      }
      } else {
      @me = '';
      }
      [/field:global]

      代码解释:

    • [field:global name=autoindex runphp="yes"]:这是一个织梦的全局变量,用于循环计数,我们利用它只在第一个循环时执行判断,提高效率。
    • if($cfg_ml->M_ID == 0):判断是否登录。
    • @me = '...':如果未登录,就将整个模板的输出内容替换为一段提示文字。
  3. 修改文章内容模板 article_article.htm

    • 同样,在模板文件的开头,<html> 标签之前,添加类似的判断代码:
      [field:global name=autoindex runphp="yes"]
      if(@me == 1) {
      global $cfg_ml;
      if($cfg_ml->M_ID == 0) {
          // 如果未登录,显示提示信息
          @me = '<div style="text-align:center; padding:50px 0;">
                    <h2>该内容仅对会员开放</h2>
                    <p>请<a href="/member/index.php">登录</a>后查看。</p>
                 </div>';
      } else {
          @me = '';
      }
      } else {
      @me = '';
      }
      [/field:global]
  4. 完成:

    • 保存模板文件。
    • 只有您设置了这些模板的栏目,才会进行登录验证,其他未修改的栏目则不受影响。

通过后台设置(推荐,但有限制)

织梦后台本身没有直接“关闭前台”的开关,但可以通过设置会员模型来实现部分限制。

适用场景: 您希望将整个网站或部分内容设置为“会员专享”,并让用户在前台通过注册登录后才能查看。

操作步骤:

  1. 进入会员模型管理:

    • 登录织梦后台。
    • 菜单栏:会员 -> 会员模型管理
  2. 修改或创建模型:

    • 如果您想限制文章,点击 普通文章
    • 如果您想限制其他类型,可以创建或修改相应的模型。
    • 在模型字段设置页面,找到 浏览权限 或类似的字段(通常是系统自带的 arcrank 字段)。
  3. 设置浏览权限:

    • 找到 arcrank 字段,将其设置为“仅会员可见”或类似的选项,这个字段的值有:
      • -1: 专题
      • 0: 公开(所有人可见)
      • 1: 秘密(仅管理员可见)
      • 2: 会员(仅注册会员可见)
    • 您可以将默认值设置为 2,这样,所有新发布的文章默认就只有会员能看。
  4. 发布文章时设置:

    • 在后台发布文章时,您也可以手动修改 浏览权限 这一项,来控制单篇文章的可见性。

优点:

  • 无需修改代码,安全,后台可管理。
  • 灵活,可以精确控制每篇文章的浏览权限。

缺点:

  • 无法完全禁止访问网站首页和栏目页,访客仍然可以浏览到文章列表,只是点击进去会提示权限不足。
  • 对于想完全“锁站”的场景不适用。

总结与建议

方法 优点 缺点 适用场景
方法一 (修改index.php) 彻底、严格,完全禁止未登录用户访问任何页面。 修改核心文件,有风险;对SEO不友好(搜索引擎也无法抓取)。 内部网站、测试环境、需要完全会员制的网站。
方法二 (修改模板) 灵活,可以针对特定栏目进行控制,不影响其他页面。 需要为每个需要限制的模板单独修改,略显繁琐。 网站大部分公开,只有少数几个栏目或内容需要会员权限。
方法三 (后台设置) 安全、方便,后台可视化操作,无需编程。 不够彻底,访客仍可看到文章列表,无法锁站。 大多数会员制网站,希望内容对搜索引擎部分开放。

强烈建议:

  • 如果您是新手,优先尝试方法三,它最安全。
  • 如果您需要彻底禁止所有访客访问,选择方法一,但操作前务必、务必、务必备份文件
  • 如果您只需要限制部分内容,方法二是最佳选择。
-- 展开阅读全文 --
头像
织梦Dede如何添加新字体?
« 上一篇 今天
dede注册邮箱验证码怎么获取或失效?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]