重定向子目录索引文件

时间:2015-07-08 06:42:28

标签: .htaccess redirect

基本上我将旧的类别页面重定向到新的类别页面。问题是可以在www.domain.com/category/www.domain.com/category/index.shtml找到旧类别。

网站上的所有链接都指向www.domain.com/category/index.shtml,因此我的.htaccess中已经有重定向的网址。

但是在极少数情况下会找到www.domain.com/category/并且显然不会重定向,因为它与我的重定向规则不匹配。

如何将这两个网址重定向到一个.htaccess行?

基本上我正在尝试这样做:

redirect 301 /category/ http://www.domain.com/new-category/
redirect 301 /category/index.shtml http://www.domain.com/new-category/

问题在于,第一条规则将封装/ category /中的所有内容,这是我不想要的。

理想情况下,我希望它在一行中,因为有很多需要重定向,不幸的是我无法重定向它们。

这可能吗?

1 个答案:

答案 0 :(得分:1)

仅在/category/之后没有任何内容或仅index.shtml时才能匹配,您可以使用RedirectMatch指令:

RedirectMatch 301 ^/category/(index.shtml)?$ http://www.domain.com/new-category/

注意表达式的部分:

  • ^锚定到网址的开头
  • (index.shtml)一个小组
  • ?量词,使前一个单位 - 在本例中为组 - 可选
  • $锚定到网址的末尾