Я запускаю веб-сайт ASP.NET 4.0 с использованием IIS7 в Windows Server 2008 R2.
На сайте есть несколько веб-приложений в основном домене (~ / site1, ~ / site2, ~ / site3 и т. Д.). Каждое веб-приложение является экземпляром одной и той же исходной папки веб-сайта (D: \ Websites \ MySite), поэтому вы можете получить доступ к одному и тому же веб-сайту по любому из следующих URL-адресов:
www.mydomain.com
www.mydomain.com/site1
www.mydomain.com/site2
www.mydomain.com/site3
Каждый раз возвращается один и тот же веб-сайт, но с немного разным содержанием в зависимости от того, какой конкретный URL-адрес вызван.
Все работало нормально в течение нескольких месяцев, пока меня не попросили добавить несколько оптимизаций SEO с помощью URL Rewrite. Каждое добавляемое мной правило перезаписи URL вызывает следующую ошибку:
Ошибка HTTP 500.52 - Ошибка модуля перезаписи URL. Страница не может быть отображена из-за внутренней ошибки сервера.
Ошибка конфигурации: невозможно добавить повторяющуюся запись коллекции типа «правило» с уникальным ключевым атрибутом «имя», установленным на «AddTrailingSlashRule1».
Я читал в другом месте, которое окружает configSection <system.webServer> в файле web.config с:
<location path="." inheritInChildApplications="false">
исправит эту проблему.
Однако, хотя он останавливает появление сообщения об ошибке, он также останавливает работу правил перезаписи URL в любом из веб-приложений (~ / site1, ~ / site2, ~ / site3).
Как я могу заставить модуль URL Rewrite работать с веб-приложениями?
Спасибо за любую помощь, которую вы можете предложить.
Например:
Имя html-файла www.mydomain.com как main.html
www.mydomain.com/site 1 имя файла как site 1.html ..etc
Шаг 1: win + R введите "inetsrv" без кавычек, нажмите Enter -> config -> откройте файл applicationHost.config (используйте блокнот ++)
Шаг 2: Найдите под линией (приблизительно номер строки = 218)
<defaultDocument enabled="true">
<enter code here`files>
<add value="Default.htm" />
<add value="Default.asp" />
<add value="index.htm" />
<add value="index.html" />
<add value="iisstart.htm" />
<add value="default.aspx" />
</files>
</defaultDocument>
step3: Добавьте имя файла www.mydomain.com
пример
<add value="main.html" />
и сохранить
шаг 4: откройте IIS и перейдите на сайт 1 -> откройте документ по умолчанию -> нажмите добавить и введите имя файла сайта 1 (site1.html)
шаг 5:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="site 1">
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="site1.html" />
</files>
</defaultDocument>
</system.webServer>
</location>
</configuration>
-------------------------------------------------- и сохранить
Шаг 6: сайт 2 такой же, как сайт 1 (измените путь к местоположению как «сайт 2» и имя файла html)
Пример:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<location path="site 1">
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="site1.html" />
</files>
</defaultDocument>
</system.webServer>
</location>
<location path="site 2">
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="site2.html" />
</files>
</defaultDocument>
</system.webServer>
</location>
</configuration>