Добавить URL-адрес тщеславия в подтекст статьи
Так что я использую подтекст 1.95 на IIS6 и.net 2.0 framework. То, что я хотел бы сделать, это создать красивый тщеславный URL для конкретной статьи, которая публикуется в системе подтекста. URL-адрес тщеславия должен выглядеть следующим образом: mydomain.com/blog/toc/, но статья с подтекстом, на которую он указывает, на самом деле имеет следующий путь: mydomain.com/blog/archive/2009/01/11/table-of-contents.aspx
Вероятно, я могу просто настроить переадресацию в IIS для этого, но я ищу более элегантное решение, которое не требует каких-либо пользовательских конфигураций IIS, подобных этому. Я также хотел бы воздержаться от изменения какого-либо основного кода подтекста, чтобы оставить для себя путь обновления.
Является ли лучшим решением просто поместить файл default.aspx в папку / toc / и перевести эту страницу на длинный путь?
Заранее спасибо!
2 ответа
Обратите внимание, это относится к подтексту 2.1.2 и ниже
Соответствие URL обрабатывается в Web.config. Вы можете найти строку, которая выглядит следующим образом:
<HttpHandler pattern="(?:/archive/\d{4}/\d{2}/\d{2}/[-_,+\.\w]+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
И измените регулярное выражение там. К сожалению, подтекст будет продолжать генерировать старые ссылки. В грядущем подтексте 2.5 ситуация немного улучшится.
Еще одна проблема заключается в том, что в IIS 6, если каталог /toc/ физически не существует, IIS не будет передавать запрос в ASP.NET, поэтому вам нужно использовать сопоставление с подстановочными знаками, чтобы фактически выполнить эту работу.
На данный момент, я думаю, вам может потребоваться сделать это с помощью какого-то фильтра isapi перезаписи URL-адресов в IIS, чтобы достичь именно того, чего вы хотите.
Спасибо за информацию Фил.
В итоге я просто создал папку /toc/ и получил файл default.aspx, который перенаправляет на статью блога. Это, вероятно, самое простое решение, и его реализация заняла всего минуту.