网络开发:你如何处理“正在建设中”页面“?

时间:2010-06-01 11:44:16

标签: language-agnostic

我想知道将网站切换到临时“建筑物下”页面并将其切换回新版本的最佳方法是什么。

例如,在网站中,我的客户决定从Joomla切换到Drupal,我必须为新CMS创建一个子文件夹,然后将所有内容移动到根文件夹。

1)将所有内容移回根文件夹始终创建文件权限,链接等问题......

2)在.htaccess中创建重写规则或使用php转发不是解决方案,因为显示了包含顶级文件夹的其他网址。

3)许多主机服务不允许更改根目录,所以这不是一个选项,因为我无法访问apache配置文件。

由于

更新:我可能只转发域名(即www.example.com)并将IP保留在根文件夹(即123.24.214.22)上,因此对我来说访问权限终于不同了和其他人?我可以在.htaccess文件中执行此操作吗?

4 个答案:

答案 0 :(得分:1)

要考虑的一件事是你不希望搜索引擎缓存正在构建的页面 - 你也不希望它们从搜索索引中删除你的主页(因此只是添加一个“noindex”元标记isn这是完美的解决方案。

处理此问题的一个好方法是从您的主页到正在建设的页面进行302重定向(暂时移动) - 这样搜索引擎不会将您的主页缓存为正在建设的页面,不会将您的正在建设的索引页面(假设它有一个NOINDEX元标记),并且不会从搜索索引中删除您的主页。

答案 1 :(得分:0)

一种方法是在模板页面上使用包含 如果要显示构建页面,可以在include中设置重定向,以将所有流量带到构造页面。

完成后,删除重定向。

答案 2 :(得分:0)

我在网站上使用PHP时所做的是配置Apache以将所有请求定向到前端控制器。然后,无论他们指向何处,您都可以完全访问所有请求。然后在前端控制器(PHP文件,静态html文件等)中,你可以做任何你需要做的事情。

我相信你需要在Apache和其他一些设置中配置pathinfo,自从我使用这种方法已经有3年了。但是,这种方法也适用于开发自己的CMS或应用程序,以便您可以完全控制安全性。

你必须做类似的事情: http://www.phpwact.org/pattern/front_controller

我正在寻找更多细节,我知道我的配置比这更多。

这也是我正在寻找的一部分: http://httpd.apache.org/docs/2.0/mod/core.html

启用path_info会将路径信息传递给脚本,因此所有请求现在都通过单个入口点。让我找到我的配置,我清楚地知道它是如何工作的,但我确信它看起来像很多挥手。

另外,请记住,因为所有请求都是通过这个单独的PHP文件,所以您负责提供图像,JavaScript,CSS等。因此,如果请求是针对/css/default.css的,那么将通过您的PHP脚本(index.php,最有可能),然后您将需要确定如何处理请求。提供静态文件是微不足道的,但它还有一些工作要做。

如果你不想走这条路,你可以用mod_rewrite做一些事情,这样它只能查找.html,.htm页面,或者你的网站已经配置好了。对我来说,我不做扩展,所以这使得我的正则表达式更难一点。我还想保护对所有文件的访问。 path_info对我来说是解决方案,但是如果你不需要这种粒度,那么编写前端控制器可能会有点太多工作。

沃尔特

答案 3 :(得分:0)

劫持index.php文件怎么样?

简单的事情,按照

的方式
<?php
  if (SITE_OFFLINE)
    include 'under_construction.html';
  else
    //normal content of your index page
?>

您可以根据需要在适当的位置自然定义SITE_OFFLINE。