2012-07-27 115 views
1

我遇到問題。 Сustomer在他的網站上更換了固定鏈接,並要求我將301重定向到舊固定鏈接。htaccess - 301使用GET參數重定向

舊版本:http://my-site.by/catalog/?branch=3855

新版本:http://my-site.by/catalog/3855/

我嘗試以不同的方式,但它不工作... 誰能幫助我?

UPD

哦,對不起。完全忘了說。 我累了整理和做這在PHP端:)

我的解決方案:

if (strpos($_SERVER['REQUEST_URI'], '/catalog/?branch=') !== false) 
{ 
    header(«HTTP/1.1 301 Moved Permanently»); 
    header(«Location: www.my-site.by/catalog/».str_replace("/catalog/?branch=","",$_SERVER['REQUEST_URI'])."/"); 
    exit(); 
} 

別人可能需要。

+0

我試圖用參數玩: '的RewriteCond%{ QUERY_STRING}^[?]?branch =(。*)[&| $] [數] 'RewriteCond%{QUERY_STRING} ^分支=([^&] +) RewriteRu le ^。* $ http://aleshka.by/catalog/%1/ [R = 301]' 但是沒有什麼幫助... – oOLokiOo 2012-07-30 12:40:27

回答

0

一下添加到您的htaccess:

# 301 Redirect - url to url 
    RewriteRule http://my-site.by/catalog/?branch=3855 http://my-site.by/catalog/3855/ [R=301,L,NC] 

如果你想要爲所有這類網址的做到這一點:

# 301 Redirect - Dynamic Rewriting 
RewriteRule ^catalog/?branch=([0-9]+)$ catalog/$1/ 
+0

您在第二次重定向時也需要'R = 301'。 – 2012-07-27 17:38:22

+0

表達式對我不起作用 – oOLokiOo 2012-07-30 12:57:10

+0

嘗試用301:RewriteRule^catalog /?branch =([0-9] +)$ catalog/$ 1/[R = 301]得到相同的結果。 – oOLokiOo 2012-07-30 13:03:08