我已在我的网站上实施了Static Publisher。
我有一个在CMS中设置的页面,只能由某些组查看。
在安装StaticPublisher之前,这很好用 - 当用户访问浏览器中的受保护页面时,他们被重定向到安全/登录,显示了成员登录表单,经过身份验证后,他们就被发送了。
安装了StaticPublisher后,当用户点击受保护的页面时,它们会被重定向到安全/登录,但不会显示任何表单 - 只会通知他们用户登录的名称。
是否可以使用StaticPublisher拥有受密码保护的页面?我是否需要以某种方式配置Static Publisher以允许受密码保护的页面?
答案 0 :(得分:1)
静态发布商不会根据会员的访问级别(或其他许多内容)改变内容。由于它将页面保存为静态HTML,因此从不为HTTP请求访问SilverStripe后端,而是将原始HTML页面提供给用户。
但是,您可以从静态发布中排除某些页面和页面类型。如果您不需要缓存此特定页面或部分,这可能是您的最佳选择。
来自docs:
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
rules to require HTTP Basic Authentication访问某些缓存页面。这将在SilverStripe的身份验证/授权系统之外运行(并且您必须在.htpasswd
文件中手动定义用户名和密码)。