2009-12-15 118 views
1

我們正在利用我們的PHP網站內的國防部重寫URL,這是我們所使用的重寫規則:開關國防部重寫URL

RewriteRule ^category/([^.]+)/([0-9]+)/([^.]+)/([0-9]+) categories.php?c_id=$2&filters=$3&_p=$4&area=category&areaname=$1 

但是,不同系統的用戶切換到我們的設置,並希望將他們所有的舊頁面重新編號爲301。因此,舉例來說,這個網址:

http://domain.com/categories/clothing/5/1 

變爲:

http://domain.com/category/clothing/5/0-0-0-0/1 

是否有可能做到這一點在一個重寫規則或改寫匹配(或類似),我INTIAL的想法是這樣的將工作:

RewriteRule /categories/(.*)/(.*)/1 /category/$1/$2/0-0-0-0-0-0-0-0/1 [R=301,L] 

它不,有什麼想法?

與RedirectMatch也試過這也行不通:

RedirectMatch /categories/(.*)/(.*)/1 http://domain.com/category/$1/$2/0-0-0-0-0-0-0-0/1 
+1

是在'重寫規則/類別的斜線...'故意? – jensgram 2009-12-15 11:44:36

+0

哈哈,很好! – robjmills 2009-12-15 17:31:58

回答

2

固定自己使用這個規則:

RedirectMatch 301 /categories/(.*)/(.*)/(.*) http://domain.com/category/$1/$2/0-0-0-0-0-0-0-0/$3 
0

你的例子是重定向到從我可以看到你想要的方式相反的方式。

/category/abc/def/0-0-0-0-0-0-0-0/1/categories/abc/def/1

+0

只是注意到我粘他們錯了方式,仍然沒有工作,雖然 – robjmills 2009-12-15 10:58:52

+0

切換他們上面 – robjmills 2009-12-15 11:11:05

1

這裏有一個mod_rewrite的例子:

RewriteRule ^categories/([^/]+/[^/]+)/([^/]+)$ /category/$1/0-0-0-0/$2 [L,R=301]