2015-03-11 5 views
0

Я с помощью простого mod_rewrite правилувперед слэши в артикулах нарушают правила mod_rewrite

RewriteRule ^product/([^/.]+)/([^/.]+)/?$ product.php?partNumber=$1&partName=$2 [L] 

Он отлично работает на 99,99% продукции, но есть 3 или 4 продуктов, которые имеют косую черту в их номере детали (например, PART001/1)

который переписывает на что-то вроде:

/product/PART001/1/part-name-here-for-nice-seo 

Очевидно, что это не работает, как это выглядит в дополнительной директории. Мне нужно, чтобы номер детали прошел правильно, поскольку он используется для поиска индекса в базе данных и получения всей информации о продукте.

Есть ли способ обойти это?

+0

Что входит в число в '//1 часть-имя-здесь-для-NICE-seo'/продукта/PART001 и почему вы получаете эти искаженные адреса? – anubhava

ответ

0

Похоже, вам просто нужно сменить группу ([^/.]+) в вашем регулярном выражении так же, как и косые черты. Попробуйте:

RewriteRule ^product/(.+)/([^/.]+)/?$ product.php?partNumber=$1&partName=$2 [L] 
+0

Спасибо, Джон. Это сработало отлично. – Timmy

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