我需要在特定日期之前提供正在建设的页面,但是我会在新内容需要显示的那天出国,并且在一周半后(我知道,第一个世界问题。 ..)
我目前在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之外,还有什么办法可以从Terminal看到Apache的状态(日期,时间等)吗?任何帮助将不胜感激!
答案 0 :(得分: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]
另外,请不要忘记使用>=
或<=
,具体取决于您是要在当天还是后一天开启。
答案 1 :(得分: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]
%{TIME}
变量是4位数年份,2位数月份,2位数日期,2位数小时,2位数分钟和2位数秒。