带有密码保护页面的静态发布者

问题描述 投票:0回答:1

我已经在我的网站上实现了 Static Publisher。

我在 CMS 中设置了一个页面,仅可由某些组查看。

在安装 StaticPublisher 之前,这工作得很好 - 当用户访问浏览器中的受保护页面时,他们会被重定向到安全/登录,显示会员登录表单,并在身份验证后将其发送出去。

安装 StaticPublisher 后,当用户点击受保护页面时,他们将被重定向到安全/登录,但不会显示任何表单 - 仅显示一条通知,通知他们用户以什么名称登录。

是否可以使用 StaticPublisher 对页面进行密码保护?我是否需要以某种方式配置 Static Publisher 以允许受密码保护的页面?

php silverstripe
1个回答
1
投票

静态发布者不会根据会员的访问级别(或其他)来改变内容。由于它将页面保存为静态 HTML,因此 HTTP 请求永远不会访问 SilverStripe 后端,而是向用户提供原始 HTML 页面。

但是,您可以从静态发布中排除某些页面和页面类型。如果您不需要缓存此特定页面或部分,这可能是您的最佳选择。

来自文档

public function allPagesToCache() {
    $urls = array();
    $pages = SiteTree::get();

    // ignored page types
    $ignored = array('UserDefinedForm');

    foreach($pages as $page) {
        // check to make sure this page is not in the classname
        if(!in_array($page->ClassName, $ignored)) {
            $urls = array_merge($urls, (array)$page->subPagesToCache());
        }
    }

    return $urls;
}

或者,您可以使用

htaccess
规则要求 HTTP 基本身份验证 才能访问某些缓存页面。不过,这将在 SilverStripe 的身份验证/授权系统之外运行(并且您必须在
.htpasswd
文件中手动定义用户名和密码)。

© www.soinside.com 2019 - 2024. All rights reserved.