2014-02-05 2 views
0

Наш сайт имеет новую структуру URL, и нам нужно перенаправить 301 страницы, используя mod rewrite.Mode Rewrite 301 Redirects

Старый URLS

www.example.com/en/car-parts/159-black-toyota-convertable.html

Новый URLS

www.example.com/cars-parts /black-toyota-convertable.html

Как видно из вышеизложенного нового URL удаляет:

/ен/ /159-

EN - это язык, а 159 - это идентификатор продукта, который оба они должны быть удалены.

Я пробовал ниже, но без радости.

RewriteRule ^en/([0-9]+)-([^/.]+)/?$ /$1 

выше дает мне результат:

/159

Любой один получил какие-либо идеи, пожалуйста?

Благодаря

J

ответ

0

В правиле $ 1 является результатом захвата subparttern ([0-9]+), не ([^/.]+), который составляет $ 2.

RewriteRule ^en/\d+-([^/.]+)/?$ /$1 [L,R=permanent] 

Для этой простой задачи мы также можем использовать RedirectMatch.

+0

Привет, спасибо за помощь, я попробовал ваше предложение, но он не работает, также когда я меняю $ 1 на $ 2, он все равно дает мне/159 –

+0

Не может, вы очистите свой кеш? Согласно вашему примеру, эти правила никогда не совпадают, потому что 1) часть 'car-parts' не обрабатывается 2) idem для точки в расширении. Правило должно быть более чем следующим: 'RewriteRule^en/([^ /] +)/\ d + - ([^ /] +) /? $/$ 1/$ 2 [L, R = постоянный]' – julp

+0

Да правильно я пропустил/автозапчасти/Я использую правила в тесте Mod ReWrite: http://martinmelin.se/rewrite-rule-tester/ до сих пор не радует. –