我想知道将网站切换到临时“建筑物下”页面并将其切换回新版本的最佳方法是什么。
例如,在网站中,我的客户决定从Joomla切换到Drupal,我必须为新CMS创建一个子文件夹,然后将所有内容移动到根文件夹。
1)将所有内容移回根文件夹始终创建文件权限,链接等问题......
2)在.htaccess中创建重写规则或使用php转发不是解决方案,因为显示了包含顶级文件夹的其他网址。
3)许多主机服务不允许更改根目录,所以这不是一个选项,因为我无法访问apache配置文件。
由于
更新:我可能只转发域名(即www.example.com)并将IP保留在根文件夹(即123.24.214.22)上,因此对我来说访问权限终于不同了和其他人?我可以在.htaccess文件中执行此操作吗?
答案 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。