Нужна помощь в регулярном выражении для перезаписи URL-адресов в дружественные URL-адреса - PullRequest
0 голосов
/ 17 января 2012

Я обновил CMS своего сайта, и форматы URL изменились. Где раньше у меня был URL / blog.aspx? Год = XXXX & Месяц = ​​ГГ Теперь у меня есть / blog / XXXX / YY

Может ли кто-нибудь помочь мне создать регулярное выражение для этого?

Два дополнительных примечания:

  • он также должен поддерживать просто год ( / blog.aspx? Year = XXX )
  • в старых месяцах месяца для однозначных месяцев используется только 1 цифра ( / blog.aspx? Year = 2009 & Month = 2 вместо Month = 02 )

Вот что я придумал:

/blog.aspx[?]Year=([0-9]{4})([&]?)(Month=)?([0-9]*)

Кажется, я не могу заставить его работать, так как я все равно получаю 404 на странице, когда перехожу на один из указанных выше URL.

1 Ответ

0 голосов
/ 17 января 2012

Это работоспособно?

/blog.aspx\?Year=([0-9]{4})(?>\&?Month=?([0-9]{1,2})|)

работает с этими входными данными

/blog.aspx?Year=1983&Month=2
/blog.aspx?Year=1983
/blog.aspx?Year=1983&Month=12

есть этот (?>blabla|moomoo) синтаксис.
Если он не может найти blabla соответствия, он будет соответствовать moomoo

Хотя я подозреваю, что регулярное выражение здесь не является корневой проблемой, что CMS обрабатывает перенаправление?

...