Завершение регулярного выражения в IIS7.5, которое успешно сопоставляется, но не удается при последующей перезаписи - PullRequest
1 голос
/ 27 февраля 2012

У меня есть папка с изображением в ней:

/products/12345/800.jpg

, где 12345 = идентификатор базы данных, а 800.jp - изображение шириной 800 пикселей.

Я хочу создать красивый URL, подобный этому:

/products/12345/800/this-is-a-nice-readable-url.jpg

В IIS7 я создал следующее регулярное выражение:

(.*)/products/([0-9]*)/([0-9]*)([/\-\.0-9a-z]*)

Я получаю совпадение при тестировании по следующему URL:

http://localhost/products/12345/800/this-is-a-nice-readable-url.jpg

Итак, я создал следующий rewriteurl:

{R:1}/products/{R:2}/{R:3}.jpg

Но это, похоже, не работает. Я думал, что приведенное выше переписать заставит меня:

http://localhost/products/12345/800.jpg

Но это не так. Поэтому я предполагаю, что моя проблема в том, что мне удалось создать совпадение, но мне не удалось и я заменил источник на цель.

Как я могу заставить эту перезапись работать правильно.

1 Ответ

1 голос
/ 27 февраля 2012

Часть URL, которая используется для соответствия вашему шаблону, не содержит начальных символов /, поэтому вы действительно очень близки к успеху, попробуйте использовать этот шаблон:

(.*/)?products/(\d+)/(\d+).*

и перепишите:

/{R:1}products/{R:2}/{R:3}.jpg
...