2016-03-28 2 views
0

Я изменил веб-платформы и имею старые URL-адреса, которые я не могу и не хочу сопоставлять на новой платформе, где сейчас живет старый контент.Как переписать URL-адреса в htaccess, которые заканчиваются повторяющимися символами

У меня есть массив старых URL-адресов продуктов, у которых все есть «-p-» в URL-адресе, а затем строка чисел и заканчивается на .html (URL-адреса платформы osCommerce).

Я хотел бы знать, как переписать:

/x/[rest-of-url]-p-[random numbers].html 

в

/x/[rest-of-url] 

Я хотел бы конечный результат, чтобы выглядеть примерно так:

http://www.shop.com/shop/versace-black-snakeskin-pony-hair-hobo-p-2214.html 

перенаправляет:

http://www.shop.com/shop/versace-black-snakeskin-pony-hair-hobo 

Кто-нибудь знает, можно ли это сделать в файле htaccess в качестве правила перезаписи?

ответ

0

Мои управляемые хостинг-провайдеры BeepWeb ответили на мой вопрос.

RewriteRule ^/shop/(.*)-p-(.*).html$ http://www.shop.com/product/$1/ [R=302] 

Первый аргумент - это URI, который вы соответствуете. () соответствует любым символам. Второй аргумент - целевой URL. $ 1 соответствует первому (). $ 2 будет вторым (. *) И т. Д. [R = 302] сообщает переписать как перенаправление 302 (используйте [R = 301] для 301 перенаправления).

Использование () по существу похоже на использование wildard. Вы можете ограничить это, указав, какие символы вы хотите сопоставить, в отличие от всех символов (вместо использования (.) вы можете использовать ([abc] *), который будет соответствовать только символам a, b и c).

Кроме того, будьте осторожны, чтобы не совпадать с другими URL-адресами непреднамеренно (т. Е. Вам нужно убедиться, что совпадения шаблонов уникальны для переписанных URL-адресов).

Если вам нужна ссылка на источник, видит следующее: https://httpd.apache.org/docs/current/rewrite/intro.html

Еще раз спасибо http://www.beepweb.com за подробный ответ. Надеюсь, это поможет другим.

Смежные вопросы