我已经在我的网站上实现了 Static Publisher。
我在 CMS 中设置了一个页面,仅可由某些组查看。
在安装 StaticPublisher 之前,这工作得很好 - 当用户访问浏览器中的受保护页面时,他们会被重定向到安全/登录,显示会员登录表单,并在身份验证后将其发送出去。
安装 StaticPublisher 后,当用户点击受保护页面时,他们将被重定向到安全/登录,但不会显示任何表单 - 仅显示一条通知,通知他们用户以什么名称登录。
是否可以使用 StaticPublisher 对页面进行密码保护?我是否需要以某种方式配置 Static Publisher 以允许受密码保护的页面?
静态发布者不会根据会员的访问级别(或其他)来改变内容。由于它将页面保存为静态 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
文件中手动定义用户名和密码)。