这些天,我发现自己经常将静态网站迁移到基于 WordPress 的网站。在测试服务器上完成 WordPress 网站的开发后,我想将其安装在当前网站域上,但不影响旧的静态站点 - 直到站点上线。
我的想法是将当前的非 WordPress 网站移动到一个文件夹/old/
,并将所有请求重写到该文件夹(因此出于 SEO 目的,保持所有 url 相同)。
为了让我自己和其他授权人通过我想检查一个 cookie(这将通过一个简单的“登录”php 文件设置,因为我不能依赖静态 IP 地址)或者当前日期和时间是否在直播之后日期然后让 WordPress 重写规则按照他们的方式授予对 WordPress 网站的访问权限。
这也将允许我在当前或旧站点上添加一个简单的倒数计时器,之后新站点将在上线日期自动上线。
我的简单 login.php 脚本是这样的:
<?php
setcookie("login", "loggedin", time()+3600,"/");
?>
<h3>Welcome, you are logged in</h3>
<p><a href="/">Click here to visit the home page</a></p>
我认为以下可能是实现这一目标的最佳方法,但它不起作用(我收到内部服务器错误)。第一部分检查登录 cookie 是否存在,如果不存在,并且当前日期和时间在 2012 年 7 月 20 日晚上 8 点之前,它将重写对/old/
文件夹的所有请求。我已修改 WordPress 重写部分以排除该/old/
文件夹。
RewriteCond %{HTTP_COOKIE} !^.*login.*$ [NC]
RewriteCond %{TIME} < 20120720200000
RewriteCond %{REQUEST_URI} !^/old/
RewriteRule (.*) http://domain.com/old/$1 [L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/(old/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
有人可以帮助我实现我想要实现的目标吗?