我需要将一些网址重定向到新位置,但在某些情况下,子网页需要保持活动状态而不是重定向。例如:
/products
会重定向到http://www.newsite.com/products
/products/category1
会重定向到http://www.newsite/products/category1
但 /products/specialitem
根本不会被重定向。
是否可以使用Redirect或RedirectMatch?
执行Redirect 301 /products http://www.newsite.com/products
似乎会影响所有子页面
感谢任何指导!
修改
使用waynethec的回答,我能够开始使用。但是,任何人都可以澄清为什么我的第一条规则不起作用,但其他规则不起作用?
RedirectMatch 301 ^segment-one$ http://www.google.com/
RedirectMatch 301 ^segment-one/segment-two$ http://news.google.com/
RedirectMatch 301 ^segment-one/segment-two/segment-three$ http://cnn.com/
RedirectMatch 301 ^segment-one/segment-two/segment-three/foobar$ http://gbv.com/
(通过不工作,我的意思是我仍然可以访问页面,而不是重定向。)
答案 0 :(得分:2)
您应该能够使用以下RedirectMatch规则:
RedirectMatch 301 ^/products$ http://www.newsite.com/products
请注意,这只会重定向/ products,而不是/ products /或/products/pagename.extension的请求。
答案 1 :(得分:0)
您可以使用RedirectMatch
:
RedirectMatch 301 ^/products(?!/specialitem)(.*)$ http://www.newsite.com/products$1
除/products
/products/specialitem/
或其后的任何内容
答案 2 :(得分:0)
如果您需要添加条件,这对我也有用。注意,在使用RewriteRule时,我必须消除^
和products
之间的斜杠。
RewriteCond [...whatever your conditions are...]
# test with 302 first to avoid annoying caching issues
# RewriteRule ^products$ http://www.newsite.com/products [R=302,NC,L]
# but use 301 in production once you know it's working
RewriteRule ^products$ http://www.newsite.com/products [R=301,NC,L]