我已经被困了一段时间,如何为我的CakePHP网站创建一个“即将推出”页面。我需要通过webroot
保护.htpasswd
目录,以便只有授权用户才能在构建时访问该站点。但是,常规访问者在访问thesiteurl.com
或thesiteurl.com/index.html
时应显示“即将推出”页面。所有授权用户都可以访问thesiteurl.com/index.php
并输入登录凭据来访问网站的其余部分。
这是相关文件的目录结构,我认为我需要编辑才能使其正常工作。
/.htaccess
/comingsoon - directory containing images, css and js for the coming soon page
/index.html - the "Coming Soon" page
/index.php - the page authorised users use to access the site
/webroot/.htaccess
/webroot/index.php
.htaccess的内容
DirectoryIndex index.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !/
RewriteCond %{REQUEST_URI} !/index\.html
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
webroot / .htaccess的内容
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/my/.htpasswd
AuthGroupFile /dev/null
require valid-user
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
这些.htaccess规则只会将我带到webroot
目录文件列表中,如果我尝试访问thesiteurl.com
,并且如果我访问thesiteurl.com/index.html
,则会将空白页面设置为与我网站的其余部分相似。 thesiteurl.com/index.php
会将我带到授权用户登录后看到的索引页面。
非常感谢任何帮助。
答案 0 :(得分:3)
蛋糕方式是将公共访问文件放入app / views / pages。
设置身份验证(这很容易,如果你 还没有学到它,你会的 需要迟早)给予 登录访问控制器 功能。请参阅http://book.cakephp.org/view/172/Authentication
如果您还没有这样做,请复制 页面控制器来自 cake / libs / controller into 应用程序/控制器。确保 在PagesController中过滤之前 读取类似的内容:
function beforeFilter()
{
parent::beforeFilter();
$this->Auth->allowedActions = array('display');
}
将htaccess hocus清理干净 蛋糕送的是什么 - 它只会在以后引起你的问题。
答案 1 :(得分:0)
为什么不为测试设置单独的网址?
test.thesiteurl.com
然后在主网址上,您可以放置一个静态index.html而不会跳过所有的箍。这将允许需要访问权限的人到达他们需要的位置。那些“外面看”的人将访问主要网站并看到“即将推出”。
我们经常尝试将开发网站与生产网站合并,就像您在这里尝试一样。跳过所有的篮球是没有意义的。只是因为它可以按照你建议的方式完成,不是我,你应该这样做。吻。永远是最好的选择。保持尽可能简单。不要浪费你宝贵的时间来试图找出很酷的fandangoed做事方式。特别是如果它将被抛弃在路上。
答案 2 :(得分:0)
这就是问题所在。 http://yoursite.com会自动转到webroot目录。您的index.html文件比webroot高一级,无法访问。您需要做的是以下几点。
/webroot
/beta - directory containing all beta site pages
.htaccess - Contains your restricted area code
index.php - the page authorised users use to access the site
.htaccess
index.html - the "Coming Soon" page
然后,当您想要查看临时站点时,请转到http://yoursite.com/beta。 / Webroot是存储网站文件的文件夹。现在你只有webroot中的限制区域文件,这些文件都是apache(或者你正在使用的w / e)可以看到的。或者,您可以将文件移动到webroot文件夹,但我的方式是这样,所以用户不必“尝试”登录即可看到即将到来的页面。我知道当我去一个网站时它要求我登录而不告诉我任何事情,我认为开发人员不知道发生了什么,并且他的网站被破坏了,通常不会返回。我的方法只有在他们转到你的/ beta目录时才会提示登录。