ASP.NET: как удалить файл name.aspx из URL - PullRequest
2 голосов
/ 08 декабря 2010

Я пытаюсь написать правило перезаписи для файла web.config, чтобы URL удалял из него имя файла, что означает:

http://www.example.com/admin/Index.aspx
http://www.example.com/admin/Product.aspx

станет:

http://www.example.com/admin/
http://www.example.com/admin/

AND:

http://www.example.com/Index.aspx
http://www.example.com/Product.aspx

to:

http://www.example.com/
http://www.example.com/Product/

попробовал пару кодов, найденных онлайн, но все они дали мне внутреннюю ошибку.

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 08 декабря 2010

Я использовал UrlRewriter с открытым исходным кодом, чтобы сделать это в ряде проектов, он работает очень хорошо

http://urlrewriter.net/

Чтобы заставить его работать, вы должны добавить его в свойФайл web.config, например, так:

<httpModules>
    <add type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" name="UrlRewriter" />
</httpModules>

И добавьте раздел маршрутизации, у них хорошая документация, но в основном вы предоставляете правила перезаписи, которые могут выглядеть примерно так:

<rewriter>    
    <rewrite url="~/([a-zA-Z0-9]+)$" to="~/$1.aspx" />
</rewriter>

Добавьте dll-файлы UrlRewriter в свою корзину и настройте IIS для обработки подстановочных знаков:

  1. Поиск сайта в IIS Manager (inetmgr)
  2. Открытие свойств на вашем сайте
  3. Перейдите на вкладку «Домашний каталог»
  4. Нажмите «Конфигурация» в разделе «Настройки приложения»
  5. Нажмите «Вставить» в разделе «Карты приложений с подстановочными знаками»
  6. Укажите путь кИсполняемый файл .NET (аналогичный тому, который используется для обработки файлов .aspx) в поле «Исполняемый файл»
  7. Снимите флажок «Проверить наличие файла»
  8. Нажмите «ОК»

И все готово:)

Это довольно хорошее решение для проектов WebForms, бУдостоверьтесь, что вы хорошо его протестировали и убедитесь, что GoogleBot все еще может получить доступ к вашему сайту.

0 голосов
/ 08 декабря 2010

Я не уверен, что он у вас есть, но в IIS7 есть модуль, который вы можете установить и настроить правила перезаписи URL.Он добавит соответствующие правила в web.config вашего сайта

, руководство Скотта Гатри из Microsoft может помочь - http://weblogs.asp.net/scottgu/archive/2010/04/20/tip-trick-fix-common-seo-problems-using-the-url-rewrite-extension.aspx

...