.htaccess跳过标志没有开火

时间:2013-09-25 23:58:35

标签: regex apache .htaccess mod-rewrite skip

我希望在9月份能够进行某些重写,然后在10月份进行不同的重写。

我已经设置了两个重写块并使用了RewriteConds,如下所示。问题是第二个块似乎没有触发。

第一个区块中的Skip是不起作用的吗?或者我的.htaccess代码中还有其他一些错误吗?如果我对第一个块进行注释,则第二个重写块工作正常。我执行[S]跳过标志是不正确的?

# HANDLE PROMOTIONAL IMAGES FOR OCTOBER 2013
RewriteCond %{TIME_MON} !10 [OR]
RewriteCond %{TIME_YEAR} !2013
RewriteRule .* - [S=4]
RewriteRule ^a_750  a_750-0913.png [L,NC]
RewriteRule ^bbb    bbb_750-0913.png [L, NC]
RewriteRule ^ccc    ccc_750-0913.png [L,NC]
RewriteRule ^dnce.png   dnce_750-0913.png [L, NC]

# HANDLE PROMOTIONAL FUNNEL IMAGES FOR SEPTBMER 2013
RewriteCond %{TIME_MON} !09 [OR]
RewriteCond %{TIME_YEAR} !2013
RewriteRule .* - [S=14]
RewriteRule ^a_750  a_1000-1013.png [L,NC]
RewriteRule ^ener   ener_1000-1013.jpg [L,NC]
RewriteRule ^ethi   ethi_1000-1013.png [L,NC]
RewriteRule ^cred   cred_1000-1013.png [L,NC]
RewriteRule ^edn    edn_1000-1013.png [L,NC]
RewriteRule ^GE_f   GE_f_1000-1013.jpg [L,NC]
RewriteRule ^npc    npc_1000-1013.png [L,NC]
RewriteRule ^nwg    nwg_1000-1013.png [L,NC]
RewriteRule ^pssp   pssp_1000-1013.png [L,NC]
RewriteRule ^pris   pris_1000-1013.png [L,NC]
RewriteRule ^Sier   sier_1000-1013.png [L,NC]
RewriteRule ^uno    uno_1000-1013.jpg [L,NC]
RewriteRule ^wtw    wtw_1000-1013.jpg [L,NC]
RewriteRule ^wke    wke_1000-1013.png [L,NC]

1 个答案:

答案 0 :(得分:1)

  1. 您的第一个区块中存在语法错误,因为在NC
  2. 之前不允许空格
  3. 正则表达式问题1:确保使用RewriteRule结束$中的匹配模式,否则^bbb会一次又一次匹配。
  4. 正则表达式问题2:请务必使用RewriteCond^将{/ 1}}中的月份和年份括起来,否则不需要的年/月将匹配。
  5. 所有这些更正都是适合您的代码:

    $