переключить мод переписанный URL - PullRequest
1 голос
/ 15 декабря 2009

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

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

Возможно ли сделать это в одном правиле перезаписи или в сопоставлении переписывания (или подобном), моя первоначальная мысль заключалась в следующем:

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

Ответы [ 3 ]

2 голосов
/ 15 декабря 2009

исправил себя с этим правилом:

RedirectMatch 301 /categories/(.*)/(.*)/(.*) http://domain.com/category/$1/$2/0-0-0-0-0-0-0-0/$3
1 голос
/ 15 декабря 2009

Вот пример mod_rewrite:

RewriteRule ^categories/([^/]+/[^/]+)/([^/]+)$ /category/$1/0-0-0-0/$2 [L,R=301]
0 голосов
/ 15 декабря 2009

Ваш пример перенаправляет противоположный путь к тому, как вы хотите, из того, что я вижу.

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

...