2009-12-15 5 views
1

Мы используем моды переписаны URL в пределах нашего PHP-сайте, это правило перезаписи мы используем:переключателя моды переписана URL

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

Однако пользователь другой системы переходит на нашу установку и хотят до 301 всех их старых страниц к их новым эквивалентам. Так, например, этот URL:

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

Является ведущим слэш в 'RewriteRule/категории ...' нарочно? – jensgram

+0

ха-ха, хорошо поймать! – robjmills

ответ

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

+0

включил их выше – robjmills

1

Вот mod_rewrite пример:

RewriteRule ^categories/([^/]+/[^/]+)/([^/]+)$ /category/$1/0-0-0-0/$2 [L,R=301] 
Смежные вопросы