Регулярные выражения Перезапись URL - Как поставить тире вместо косой черты на URL без ошибок параметров - PullRequest
0 голосов
/ 28 августа 2018

У меня есть следующие регулярные выражения в файле mu .htaccess:

RewriteRule    ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?content=product&productid=$1&productitle=$2&categoryname=$3

В браузере я получаю это: http://localhost/mysite/4/rome-walking-shared/rome

Я бы хотел получить вот так: http://localhost/mysite/4-rome-walking-shared/rome где идентификатор продукта присоединяется к названию продукта с помощью "-", а не "/"

Если я попытаюсь поставить "-" вместо "/" как

RewriteRule    ^([A-Za-z0-9-]+)-([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ 

Я получаю ошибку Php, так как параметр $ get идентификатора продукта не распознан

Есть предложения?

Спасибо

1 Ответ

0 голосов
/ 28 августа 2018

Я слишком много думал о регулярном выражении, что забыл проверить значение переменной, которая получает значение $ Get из URL. Итак, по 2-му регулярному выражению: RewriteRule ^ ([A-Za-z0-9 -] +) - ([A-Za-z0-9 -] +) / ([A-Za-z0-9 -] +) /? $

URL принимает это значение: http://localhost/mysite/4-rome-walking-shared/rome

и переменная $ get, используемая для запроса к БД, принимает строковое значение «4-rome -alking-shared», используя intval значение становится 4, и можно сделать запрос БД без ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...