我们遇到了使用.htaccess在apache服务器上重写URL的问题。URL重写问题
目标:在保留通用重定向的同时,删除其类别&子类别的以下URL。
测试1:
Redirect 301 /category/subcategory/product http://www.site.com/product
重定向完美的作品。单个重定向到所需的页面。
测试2:
RedirectMatch 301 ^/category/subcategory/.*$ http://www.site.com/category/subcategory
重定向对自己的作品非常的所需的所有URL。
问题是,当我们有一个干净的.htaccess文件中的两个URL,并且重定向按正确的顺序(特定的第一个,然后一般),正在使用的一般重定向。
测试3:
Redirect 301 /category/subcategory/product http://www.site.com/product
RedirectMatch 301 ^/category/subcategory/.*$ http://www.site.com/category/subcategory
当我们参观www.site.com/category/subcategory/product,结果是www.site.com/category/subcategory/product这不是理想的结果。相反,我们想要的网址被www.site.com/category/subcategory/product,
我们甚至试图修改重定向到: Redirect 301 /category/subcategory/product http://www.site.com/product [L]
它没有什么区别。
请帮忙!
编辑:添加2014年3月25日
我们正在试图做的是新产品的页面提供了一组已知产品的具体重定向从他们的老产品页面。我们还试图将其他未知产品的“全部”重定向添加到类别页面。
下面是一个实际的例子重定向其工作原理:
Redirect 301 /womens/western-dresses/stetson-cream-empire-waist-ls-western-dress http://www.site.com/stetson-cream-empire-waist-ls-western-dress
如果上面的重定向被添加到.htaccess文件,它完美对自己。
这是第二个例子重定向其工作原理:
RedirectMatch 301 ^/womens/western-dresses/.*$ http://www.site.com/womens/western-dresses
的问题是,如果我们在.htaccess既有的规则一起,在与上述顺序相同,第二条规则总是触发。我们尝试访问www.site.com/womens/western-dresses/stetson-cream-empire-waist-ls-western-dress,结果是www.site.com/womens/western-dresses而不是所期望的结果www.site。COM /斯泰森-奶油高腰-LS-西式礼服
为清楚:
若能去除.htaccess文件,网址404
如果只有第一条规则上市之后,它触发完美
如果只有第二条规则上市之后,第二条规则触发完美
如果机器人h规则列出,第二个规则触发。
我们删除了.htaccess文件中的所有重定向。唯一的重定向是以下两行。问题仍然是第一次重定向被忽略的地方。我们尝试将第一次重定向的开始更改为^ /女性和^女性,但该更改没有效果。
Redirect 301 /womens/western-dresses/stetson-cream-empire-waist-ls-western-dress http://www.site.com/stetson-cream-empire-waist-ls-western-dress
RedirectMatch 301 ^/womens/western-dresses/.*$ http://www.site.com/womens/western-dresses
嗨codnodder - 谢谢你的回应!我收到了更多的解释,以上添加。 – Jenni
使用mod_rewrite更新了答案。如果你的路径不同,我们需要用RewriteBase等进行一些调整。 – codnodder