0

我需要在特定日期之前提供一个正在建设的页面,但我将在新内容需要显示的那一天离开这个国家,并且在一周半之后(我知道,第一世界的问题......)

我目前在 httpd-vhosts.conf 文件中为 under_construction 页面提供的服务。

RewriteRule ^(.*)$ \
http://localhost:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/under_construction/VirtualHostRoot$1 [L,P]

我想使用的是下面,但我不完全理解它应该如何工作,当然它不能正常工作,因为它没有正确配置。我曾尝试更改时间字符串以使其在重新启动后几分钟更改,但配置可能一开始就不正确。

RewriteRule ^(.*)$ \
RewriteCond ^{TIME} < 201304220000
http://localhost:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/under_construction/VirtualHostRoot$1 [L,P]

RewriteRule ^(.*)$ \
RewriteCond ^{TIME} > 201304220000
http://localhost:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/content/VirtualHostRoot$1 [L,P]

我至少在正确的轨道上吗?此外,除了 localhost:80/server-status 之外,还有什么方法可以从终端查看 Apache 的状态(日期、时间等)?任何帮助将不胜感激!

4

2 回答 2

3

比较运算符和比较运算符之间不允许有空格CondPattern

RewriteCond %{TIME} <20130422000000
RewriteRule ^(.*)$ \
http://localhost:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/under_construction/VirtualHostRoot$1 [L,P]

RewriteCond %{TIME} >=20130422000000
RewriteRule ^(.*)$ \
http://localhost:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/content/VirtualHostRoot$1 [L,P]

也不要忘记使用>=<=,这取决于您是想在当天还是一天后打开。

于 2013-04-17T11:02:44.580 回答
0

您需要在它适用的规则RewriteCond 之前:

RewriteCond %{TIME} < 20130422000000
RewriteRule ^(.*)$ http://localhost:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/under_construction/VirtualHostRoot$1 [L,P]

RewriteCond %{TIME} > 20130422000000
RewriteRule ^(.*)$ http://localhost:8080/VirtualHostBase/\
http/%{SERVER_NAME}:80/content/VirtualHostRoot$1 [L,P]

变量是 4 位数的%{TIME}年份、2 位数的月份、2 位数的日期、2 位数的小时、2 位数的分钟和 2 位数的秒。

于 2013-04-17T10:04:49.520 回答