什么是内部网或外联网?为什么使用 WordPress 作为您的内部网平台?
内部网或外联网是一个组织用于通信、文件共享、公告和其他组织活动的通信平台。WordPress 是构建组织内部网或外联网的优秀平台。它易于维护、开源,并且可以通过数以千计的 WordPress 插件添加新功能。
内部网运行在组织的专用网络上。通常,办公室的 IT 系统通过电缆或无线网络适配器连接。网络中的一台计算机可以用作网络服务器并托管 WordPress 网站。
使用 BuddyPress 设置您的 WordPress 内部网中心
BuddyPress 是 WordPress 的附属项目。它将您的 WordPress 网站转换为社交网络。通过 BuddyPress 托管的内部网,您可以:邀请用户注册公司内部网、用户能够创建扩展的用户档案、活动流使用户可以像 Twitter 或 Facebook 那样关注最新的更新、创建用户组以将用户分为部门或团队、用户可以相互关注为好友、用户可以相互发送私人消息、通过添加第三方插件添加新功能、使用适用于 BuddyPress 的 WordPress 主题进行许多设计选项。
要开始,首先需要安装并激活 BuddyPress 插件。激活后,进入设置 » BuddyPress 页面配置插件设置。
使用 All-in-One Intranet 保护您的 WordPress 内部网
如果您在本地服务器上运行 WordPress 内部网,则可以通过在 .htaccess 文件中限制访问内部 IP 来保护它。然而,如果您运行的是外联网,则用户可能会从不同的网络和 IP 地址访问内部网。为了确保只有授权用户才能访问公司的内部网,您需要使外联网变得私密并仅对注册用户可用。为此,您需要安装并激活 All-in-One Intranet 插件。激活后,进入设置 » All-in-One Intranet 页面配置插件设置。
首先需要勾选“强制网站完全私有”选项框。这将使 WordPress 网站的所有页面完全私密。唯一不会变私密的是上传目录中的文件。不要担心,我们将在本文后面向您展示如何保护它。接下来,您需要提供用户登录后要重定向到的 URL,这可以是内部网中的任何页面。最后,您可以设置自动注销不活跃用户的时间。不要忘记点击保存更改按钮以存储您的设置。
保护 WordPress 内部网上的媒体文件
使网站完全私密不会影响媒体文件。如果某人知道文件的确切 URL,他们可以毫无限制地访问它。为了更好的保护,我们将重定向所有对上传文件夹的请求到一个简单的 PHP 脚本。该 PHP 脚本会检查用户是否已登录。如果已登录,则提供文件。否则,用户会被重定向到登录页面。首先,使用纯文本编辑器(如记事本)在计算机上创建一个新文件。然后,复制并粘贴以下代码,并将文件保存为 download-file.php。
<?php require_once('wp-load.php'); is_user_logged_in() || auth_redirect(); list($basedir) = array_values(array_intersect_key(wp_upload_dir(), array('basedir' => 1)))+array(NULL); $file = rtrim($basedir,'/') . '/' . str_replace('..', '', isset($_GET[ 'file' ]) ? $_GET[ 'file' ] : ''); if (!$basedir || !is_file($file)) {status_header(404); die('404 — File not found.');} $mime = wp_check_filetype($file); if (false === $mime[ 'type' ] && function_exists('mime_content_type')) $mime[ 'type' ] = mime_content_type($file); if ($mime[ 'type' ]) $mimetype = $mime[ 'type' ]; else $mimetype = 'image/' . substr($file, strrpos($file, '.') + 1); header('Content-Type: ' . $mimetype); if (false === strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS')) header( 'Content-Length: ' . filesize( $file ) ); $last_modified = gmdate('D, d M Y H:i:s', filemtime($file)); etag = '"' . md5($last_modified) . '"'; header( 'Last-Modified: $last_modified GMT' ); header('ETag: ' . $etag ); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 100000000 ) . ' GMT' ); $client_etag = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) : false; if (!isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) $_SERVER['HTTP_IF_MODIFIED_SINCE'] = false; $client_last_modified = trim($_SERVER['HTTP_IF_MODIFIED_SINCE']); $client_modified_timestamp = $client_last_modified ? strtotime($client_last_modified) : 0; $modified_timestamp = strtotime($last_modified); if (($client_last_modified && $client_etag) ? (($client_modified_timestamp >= $modified_timestamp) && ($client_etag == $etag)) : (($client_modified_timestamp >= $modified_timestamp) || ($client_etag == $etag))) {status_header(304); exit;} readfile($file);
现在使用 FTP 客户端连接到您的网站。连接后,将刚才创建的文件上传到网站上的 /wp-contents/uploads/ 文件夹中。接下来,编辑网站根文件夹中的 .htaccess 文件。在 .htaccess 文件底部添加以下代码:
RewriteCond %{REQUEST_FILENAME} -s RewriteRule ^wp-content/uploads/(.*)$ download-file.php?file=$1 [QSA,L]
保存更改并将文件上传回您的网站。现在,所有对媒体文件夹的用户请求都将被发送到代理脚本以检查认证情况并将用户重定向到登录页面。
使用 WPForms 添加表单到您的 WordPress 内部网
公司内部网的主要目标是通信。虽然 BuddyPress 的活动流、评论和私人消息功能非常出色,但有时需要在投票或调查中私密地收集信息。您还需要对这些信息进行排序并存储以备后用。这就是 WPForms 的用武之地。它是市场上最佳的 WordPress 表单构建器。不仅可以轻松创建美观的表单,还会将用户响应保存到数据库中。您可以将任何表单的响应导出为 CSV 文件,这样就可以将表单响应组织在电子表格中,打印它们,并在同事间共享。
扩展您的 WordPress 内部网
到目前为止,您应该已经为组织创建了一个功能齐全的内部网。然而,在测试平台或向用户开放时,您可能希望添加新功能或使其更加安全。有许多 WordPress 插件可以帮助你实现这一目标。以下是一些您可能想立即添加的工具:
- Sucuri – 通过保护网站免受未经授权的访问和恶意 DDoS 攻击来提高 WordPress 安全性。
- Envira Gallery – 创建美丽的图片库。
- Google Drive Embedder – 轻松将 Google Drive 文档嵌入到您的 WordPress 内部网中。
这就是目前为止的全部内容。
我们希望本文能帮助您为您的组织创建一个 WordPress 内部网。您可能还想查看我们关于小型企业最佳工资软件的比较。如果您喜欢本文,请订阅我们的 YouTube 频道,观看 WordPress 视频教程。您也可以在 Twitter 和 Facebook 上找到我们。