Красивый URL и маршрутизация Umbraco - PullRequest
0 голосов
/ 12 апреля 2019

Я создал страницу в Umbraco 7.

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

Если я использую этот URL: http://www.example.com/product?id=10 У меня есть доступ к идентификатору внутри шаблона, используя Request ["id"], что нормально. но проблема в том, что я хочу, чтобы мой URL был похож на http://www.example.com/product/10, но если я его использую, я получаю: «404 - Файл или каталог не найден».

Я действительно думал, что это может быть разрешено маршрутизацией по умолчанию Umbraco, но это не так. Я также пытался переписать URL-адрес IIS, но я считаю, что в Umbraco должен быть лучший способ обрабатывать его так же, как ASP.NET MVC Routing.

1 Ответ

1 голос
/ 14 апреля 2019

Вы можете использовать это правило перезаписи для обработки маршрутизации до того, как запрос достигнет Umbraco.

<rule name="Product Rewrite" stopProcessing="false">
          <match url="product/([0-9]+)/"/>
          <action type="Rewrite" url="/product/?id={R:2}"/>
</rule>

Другой подход заключается в реализации пользовательского ContentFinder, который позволяет вам «находить» контент самостоятельно. Это позволяет вам создавать еще более привлекательные URL для ваших продуктов, если вы можете каким-то образом определить идентификаторы по названию. Эта ссылка https://24days.in/umbraco-cms/2014/urlprovider-and-contentfinder/ предоставляет некоторую информацию о том, как реализовать ContentFinder.

...