基本上我将旧的类别页面重定向到新的类别页面。问题是可以在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 /中的所有内容,这是我不想要的。
理想情况下,我希望它在一行中,因为有很多需要重定向,不幸的是我无法重定向它们。
这可能吗?
答案 0 :(得分:1)
仅在/category/
之后没有任何内容或仅index.shtml
时才能匹配,您可以使用RedirectMatch
指令:
RedirectMatch 301 ^/category/(index.shtml)?$ http://www.domain.com/new-category/
注意表达式的部分:
^
锚定到网址的开头(index.shtml)
一个小组?
量词,使前一个单位 - 在本例中为组 - 可选$
锚定到网址的末尾