我需要重写以便页面:
http://www.site.com/page-one
http://www.site.com/page-two
http://www.site.com/page-three
http://www.site.com/page-four
仅在2011年12月25日至2012年1月31日期间提供
我怎样才能做到这一点?我一直在玩TIME_MON,TIME_DAY,TIME_YEAR,我对如何在2011年12月25日到2012年1月31日之间处理两个单独的月份,两个单独的年份感到困惑。
RewriteCond %{TIME_YEAR} ^2011
RewriteCond %{TIME_MON} ^12
RewriteCond %{TIME_DAY} >24
RewriteRule ^/page-one/?$ /folder/page-one [PT]
RewriteRule ^/page-two/?$ /folder/page-two [PT]
RewriteRule ^/page-three/?$ /folder/page-three [PT]
RewriteRule ^/page-four/?$ /folder/page-four [PT]
RewriteCond %{TIME_YEAR} ^2012
RewriteCond %{TIME_MON} ^01
RewriteCond %{TIME_DAY} >01
RewriteRule ^/page-one/?$ /folder/page-one [PT]
RewriteRule ^/page-two/?$ /folder/page-two [PT]
RewriteRule ^/page-three/?$ /folder/page-three [PT]
RewriteRule ^/page-four/?$ /folder/page-four [PT]
非常感谢任何帮助。
答案 0 :(得分:1)
我认为这应该更具可读性,可扩展性,并且应该可以工作;)
顺便说一句:我看过的第一件事是格式: TIME_MON =>当月(0-11)
所以你的规则永远不会在12月工作;)
RewriteCond %{TIME_YEAR}/%{TIME_MON}/%{TIME_DAY} 2011/11/(25|26|27|28|29|30|31) [OR]
RewriteCond %{TIME_YEAR}/%{TIME_MON}/ 2012/0/
RewriteRule ^/page-(one|two|three)/?$ /folder/page-$1 [NC,QSA,PT]
... 3行代替14行;)
告诉我它是否有效。
如果它不起作用:阅读我通常的“两个提示”,并在你的问题中添加重写日志。
请尝试使用RewriteLog
指令:它可以帮助您找出此类问题:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
我最喜欢检查regexp的工具:
http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)