我尝试使用.htaccess进行301重定向
我的地址如下:
/index.php?option=calendario&task=view_calendar&month=12&year=2017&Itemid=100
/index.php?option=calendario&task=view_calendar&month=12&year=2017&Itemid=101
我想重定向到
/index.php?option=calendario&task=view_calendar&month=12&year=2017&Itemid=400
始终Itemid
与400
不同
当然,月份和年份可以改变
我写了这个重定向:
RedirectMatch 301 ^/index.php?option=calendario&task=view_calendar&(month=.+)&(year=.+)&(Itemid=.+)$ /index.php?option=calendario&task=view_calendar&month=$1&year=$2&Itemid=490
然而,它不起作用,如果我需要使用mod_rewrite,我不会这样做吗?
答案 0 :(得分:2)
查询字符串不是与RewriteMatch进行比较的URL字符串的一部分。您可以对RewriteCond
%{QUERY_STRING}
检查
RewriteCond %{QUERY_STRING} !option=calendario&task=view_calendar&month=([^&]+)&year=([^&]+)&Itemid=400
RewriteRule ^index.php$ /index.php?option=calendario&task=view_calendar&month=%1&year=%2&Itemid=400 [R=301,L]