301如何重定向具有特定变量的任何URL?

时间:2014-02-24 17:18:39

标签: regex .htaccess mod-rewrite redirect

我有一个旧网站要清理这个丑陋的网址格式有很多页面:

/index.php?option=com_content&view=article&id=47&Itemid=63

如何在 .htaccess 文件中编写规则,将任何以?option=开头的网址重定向到root /

任何建议都会很棒。

谢谢,

1 个答案:

答案 0 :(得分:1)

为什么还要考虑重写规则,如果你也可以在index.php文件本身修补它,这个文件可能仍然存在于新网站中?

if(!empty($_GET['option']))
{
  header('HTTP/1.1 301 Moved Permanently');
  header('Location: http://my.domain.tld/');
  die;
}

这也正确捕获了历史上存在的但有参数切换或加前缀的URL,因此option不在开头,并允许您在有一天需要使用{{1}时更灵活地进行修补再次参加GET参数。

Mod_rewrite很酷,但不是每个重定向问题的解决方案。

话虽如此,如果你真的坚持option解决方案,试试这个:

.htaccess

它测试查询字符串,然后重定向所有请求,如果它匹配。