我們遇到了使用.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