Переписать с URL с помощью строки запроса в папку - PullRequest
0 голосов
/ 08 мая 2018

Я хочу переписать URL следующим образом:

/files/b9f8d0b5e35248579953755b3677a59b.png?w=400&h=100&mode=crop

Кому:

/files/400/100/crop/b9f8d0b5e35248579953755b3677a59b.png

Мое правило вроде:

.AddRewrite(@"^files/(.*)?w=(\d+)&h=(\d+)&mode=(.*)$", "files/$2/$3/$4/$1", true)

Но это не работает, как я могу это исправить? Большое спасибо!

1 Ответ

0 голосов
/ 08 мая 2018

Ваше регулярное выражение начинается с ^, что позволяет сопоставлять шаблон только тогда, когда он начинается с files/. В остальном это выглядит довольно хорошо. Я использовал [^?] как группу символов, которая соответствует чему угодно, кроме ?, и аналогичную группу символов для [^&].

AddRewrite(@"/files/([^?]+)\?w=(\d+)&h=(\d+)&mode=([^&]+)", "/files/$2/$3/$4/$1", true)

^ Проверено на https://www.regexplanet.com/share/index.html?share=yyyyye98k3r

Возможно, вы захотите рассмотреть, что произойдет, если изменится порядок параметров запроса.

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