You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

特定星期几的htaccess Rewrite规则失效排查与设置咨询

修复你的HTAccess周五/周六重定向规则

你的规则失效的核心问题在于TIME_WDAY的条件逻辑错误,同时你对TIME_WDAY的取值记忆确实有混淆,我来帮你梳理清楚并修正:

首先,Apache的%{TIME_WDAY}取值是固定的:

  • 0 = 周日
  • 1 = 周一
  • 2 = 周二
  • 3 = 周三
  • 4 = 周四
  • 5 = 周五
  • 6 = 周六

你原来的规则里写了:

RewriteCond %{TIME_WDAY} >4
RewriteCond %{TIME_WDAY} <0

这两个条件是默认的AND关系(多个RewriteCond需要同时满足),意味着要求TIME_WDAY既要大于4,又要小于0——这完全不可能成立,所以没有任何请求会触发这个重定向,规则自然失效。

正确的配置方案

要实现仅周五(5)和周六(6)将/page/开头的请求重定向到/other-page/,可以这样写:

# 启用Rewrite引擎(如果文件开头没加的话)
RewriteEngine On

# 匹配请求路径以/page/开头的请求
RewriteCond %{REQUEST_URI} ^/page/
# 匹配周五(TIME_WDAY=5)或者周六(TIME_WDAY=6)
RewriteCond %{TIME_WDAY} =5 [OR]
RewriteCond %{TIME_WDAY} =6
# 重定向,提取/page/后的部分到$1,避免生成重复路径
RewriteRule ^page/(.*)$ http://%{HTTP_HOST}/other-page/$1 [NC,L,R=302]

关键优化点说明:

  1. 条件逻辑修正:用[OR]标记让两个TIME_WDAY条件满足任意一个即可,完美匹配周五/周六的需求。
  2. RewriteRule正则优化:把^(.*)$改成^page/(.*)$,这样$1会准确提取/page/之后的内容(比如/page/abc会重定向到/other-page/abc),避免出现/other-page/page/abc这种多余路径的问题。
  3. 添加R=302:明确是临时重定向,方便测试验证;如果确认规则稳定后,可以改成R=301永久重定向。

额外检查项

如果配置后还是不生效,建议确认:

  • 服务器已经启用了mod_rewrite模块
  • 网站根目录的AllowOverride All已经在Apache主配置中设置(确保htaccess规则能被读取)
  • 清空浏览器缓存或者用隐私窗口测试(避免旧重定向缓存影响)

内容的提问来源于stack exchange,提问作者ultraloveninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:44:22