2010-08-26 121 views
1

我想要得到一個mod_rewrite正常工作。mod_rewrite 301重定向:從舊到新的動態網址

下面是代碼:

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=301$ 
RewriteRule ^index\.php$   
/blog/shop/index.php?route=product/product&product_id=301? [R=301,L] 

它的工作原理,但在新的URL%3F的末尾增加。 有人可以幫我搞定它嗎?

回答

0

將無逃生標誌NE底:

RewriteRule ^index\.php$   
/blog/shop/index.php?route=product/product&product_id=301? [R=301,L,NE] 
+0

嘗試與NE標誌,但沒有變化。 – proximity 2010-08-26 12:24:25

+0

爲什麼你需要URL中的問號? – 2010-08-26 12:29:53

0

%3F是在你的發言結束了問號。把它拿出來,你應該很好。

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=301$ 
RewriteRule ^index\.php$   
/blog/shop/index.php?route=product/product&product_id=301 [R=301,L] 
+0

謝謝,但url最後仍有%3f: blog/shop/index.php?route = product/product&product_id = 301%3f – proximity 2010-08-26 12:22:03

+0

您的瀏覽器是否緩存響應?奇怪的是,沒有*變化。要麼Petr或我的迴應應該是你的解決方案...... – bradenkeith 2010-08-26 12:29:34

0

%3f是「?」你有「目標網址」的末尾 - 只是網址轉義。這真的應該在那裏嗎?

+0

馬上接受,不會改變任何事情。 – proximity 2010-08-26 12:24:04

0

%3f?在替換結束時以百分號編碼。剛落?末:

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=301$ 
RewriteRule ^index\.php$ /blog/shop/index.php?route=product/product&product_id=301 [R=301,L] 

你只使用一個?末指示空查詢,以便請求的查詢不會被追加到新的URL,如果它不包含查詢。

+0

謝謝,我拿了?離開 - 但網址仍然%3f最後: 博客/商店/ index.php?路線=產品/產品&product_id = 301%3f – proximity 2010-08-26 12:22:39

+1

可能舊的重定向緩存在您的瀏覽器。 – 2010-08-26 12:36:18