最近遇到一个需求,做一个站的功能,只有在用户登录后才能看到网站的内容页面,如果用户未登录都跳转到注册登录页面,类似于站:https://www.dejavuwholesale.com
下面把自己做的步骤写下来和大家分享一下:
1
在目录 /template/page/html 下新建一个文件,命令为:redirect.phtml.
redirect.phtml的内容为:
<?php
Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getRequest()->getRequestUri()); //save requested URL for later redirection
if(!Mage::getSingleton('customer/session')->isLoggedIn()) { // if not logged in
header("Status: 301");
// header('Location: '.Mage::helper('core/url')->getHomeUrl(customer/account/login)) ; // send to the login page
header('Location:'.Mage::getBaseUrl('web').'customer/account/login/' ) ;
exit;
}
?>
2
在page.xml写入代码
在文件page.xml中
<default translate="label" module="page">
<label>All Pages</label>
<block type="page/html" name="root" output="toHtml" template="page/3columns.phtml">
的后面加上代码:
<block type="page/html" name="auth-redirect" as="auth-redirect" template="page/html/auth-redirect.phtml"/>
3
在templatge/page
的文件
- 1column.phtml
- 2columns-left.phtml
- 2columns-right.phtml
- 3columns.phtml
<?php
echo $this->getChildHtml('auth-redirect');
?>
4
现在是所有的页面都做跳转,但是登录和注册页面是不需要跳转的,所以要去掉
在layout文件下得custom.xml中
标签 <customer_account_login>和 <customer_account_create>
加入代码
<remove name="auth-redirect" />
5
保存,刷新缓存,重新编译即可生效!
续~如果想首页可以访问,那么,在<cms_index_index>这个标签里加入代码
<remove name="auth-redirect" />便可!
以上可以让每一个过来的用户都注册,缺点是阻碍了谷歌的抓取,不用seo推广的站才能用这种方式作站!