Apache 在.htaccess中使用时间条件重写规则

Apache 在.htaccess中使用时间条件重写规则,apache,.htaccess,redirect,mod-rewrite,url-rewriting,Apache,.htaccess,Redirect,Mod Rewrite,Url Rewriting,这是我关于stackoverflow的第一篇文章,通常我都能在现有的讨论中找到答案,但这次我没有:-) 我需要为我的一些站点页面创建基于日期/时间条件的临时url重定向。我的站点托管在OVH(Apache2.4,共同化)上,我使用Wordpress作为CMS(4.9.1) 我已经阅读了有关mod_rewrite的Apache文档,并浏览了不同的源代码进行了一些尝试/错误测试,但没有在我的.htaccess文件(root www)中获得一段代码 我想实现以下目标:URL1(https://www.

这是我关于stackoverflow的第一篇文章,通常我都能在现有的讨论中找到答案,但这次我没有:-)

我需要为我的一些站点页面创建基于日期/时间条件的临时url重定向。我的站点托管在OVH(Apache2.4,共同化)上,我使用Wordpress作为CMS(4.9.1)

我已经阅读了有关mod_rewrite的Apache文档,并浏览了不同的源代码进行了一些尝试/错误测试,但没有在我的
.htaccess
文件(root www)中获得一段代码

我想实现以下目标:URL1(
https://www.mysite.co/url1
)应重定向到URL2(
https://www.mysite.co/url2
)从周一下午5点到周四下午5点。然后(在此时间窗口之外),重定向不会发生

我尝试实现一些简单的重写规则,以便在时间>给定日期/小时时将URL1重定向到URL2,但没有成功-请参阅我尝试的代码:

  • 代码1:
/#当时间>2017年11月30日下午6:15时,将URL1重定向到URL2

RewriteEngine On

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteRule ^URL1$ /URL2? [L,R=301]
RewriteEngine On

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteCond %{REQUEST_URI} /URL1.*
RewriteRule (.*) /URL2 [L,R=302,QSA]
-代码2:

/#当时间>2017年11月30日下午6:15时,将URL1重定向到URL2

RewriteEngine On

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteRule ^URL1$ /URL2? [L,R=301]
RewriteEngine On

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteCond %{REQUEST_URI} /URL1.*
RewriteRule (.*) /URL2 [L,R=302,QSA]
我知道我做错了sthg,但我自己却不知道该做什么/该做什么,所以如果有人能帮我解决这个愚蠢的问题,我将不胜感激

我附上一份我的文件副本,以备查阅(我已删除了所有涉及此事的代码行)

提前谢谢

编辑(17年5月12日)-代码1和代码2及完整URL:

-代码1

RewriteEngine On
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteRule ^commande-lundi$ /desole? [L,R=301]
“完整”URL将是:

RewriteEngine On
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteRule ^https://mysite.co/commande-lundi$ /https://mysite.co/desole? [L,R=301]
-代码2

RewriteEngine On
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteCond %{REQUEST_URI} /commande-lundi.*
RewriteRule (.*) /desole [L,R=302,QSA]
使用完整URL:

RewriteEngine On
RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}%{TIME_HOUR}%{TIME_MIN} >201711301815
RewriteCond %{REQUEST_URI} /https://mysite.co/commande-lundi.*
RewriteRule (.*) /https://mysite.co/desole [L,R=302,QSA]

请试试这个可以帮你吗?你的代码1看起来不错。当你删除RewriteCond时它会重定向吗?@DusanBajic:不幸的是,不,当我删除RewriteCond时它不会重定向。。。这是非常奇怪的,我必须说,因为我尝试了一堆代码,即使是最简单的代码,但没有规则起作用。然而,https和www重定向规则确实有效。。。所以在我的.htaccess文件中一定有一个“冲突”或sthg。。。你怎么想?@pardeepathania:我最初是根据哈里·B.的指导制定代码的。。。我希望它能像里面对我来说一样简单;-)您能否准确地显示您的重写规则的外观(只需将您的域名替换为
example.com
)请尝试此操作可能会对您有所帮助?你的代码1看起来不错。当你删除RewriteCond时它会重定向吗?@DusanBajic:不幸的是,不,当我删除RewriteCond时它不会重定向。。。这是非常奇怪的,我必须说,因为我尝试了一堆代码,即使是最简单的代码,但没有规则起作用。然而,https和www重定向规则确实有效。。。所以在我的.htaccess文件中一定有一个“冲突”或sthg。。。你怎么想?@pardeepathania:我最初是根据哈里·B.的指导制定代码的。。。我希望它能像里面对我来说一样简单;-)您能否准确显示您的重写规则的外观(只需将您的域名替换为
example.com