我已将2个网站合并为一个。我为已停用的网站(hkgolf.co.uk)上的所有网页设置了.htaccess重定向,以将其等效内容重定向到其他网站(http://harriskalinka.com)。
这就是我所拥有的以及停用网站上的.htaccess:
Redirect 301 / http://harriskalinka.com/
Redirect 301 /work/ http://harriskalinka.com/work/
Redirect 301 /projects_tag/academy/ http://harriskalinka.com/work/
Redirect 301 /projects_tag/asia/ http://harriskalinka.com/work/
我喜欢做的是将访问旧网站主页的访问者重定向到新网站上的页面,告诉他们为何重定向以及所有其他重定向工作正常。所以我这样做了:
Redirect 301 / http://harriskalinka.com/home/hk-golf-redirect/
Redirect 301 /work/ http://harriskalinka.com/work/
Redirect 301 /projects_tag/academy/ http://harriskalinka.com/work/
Redirect 301 /projects_tag/asia/ http://harriskalinka.com/work/
现在发生的事情是,如果你去旧网站主页(hkgolf.co.uk/),你被重定向到http://harriskalinka.com/home/hk-golf-redirect/(我想要的)
问题是,如果你需要hkgolf.co.uk/work/,你会被发送到http://harriskalinka.com/home/hk-golf-redirect/work/而不是http://harriskalinka.com/work/
为什么会这样?
答案 0 :(得分:1)
重新排列规则以保留通用规则(catch-all):
Redirect 301 /work/ http://harriskalinka.com/work/
Redirect 301 /projects_tag/academy/ http://harriskalinka.com/work/
Redirect 301 /projects_tag/asia/ http://harriskalinka.com/work/
Redirect 301 / http://harriskalinka.com/home/hk-golf-redirect/
或者,您可以使用RedirectMatch
来获得正则表达式功能:
RedirectMatch 301 ^/work/?$ http://harriskalinka.com/work/
RedirectMatch 301 ^/projects_tag/academy/?$ http://harriskalinka.com/work/
RedirectMatch 301 ^/projects_tag/asia/?$ http://harriskalinka.com/work/
RedirectMatch 301 ^/?$ http://harriskalinka.com/home/hk-golf-redirect/