2010-11-17 3 views
0

Я использую следующий файл web.config для перенаправления не-www версии сайта на www-версию. Тем не менее, я также хотел бы, чтобы это также разделило имя файла индексного файла.Windows Server Web.config Strip Index Filename

Например: перенаправлении www.example.com/index.html на www.example.com

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
     <rewrite> 
      <rules> 
       <rule name="CanonicalHostNameRule" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" /> 
        </conditions> 
        <action type="Redirect" url="http://www.example.com/{R:1}" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

Edit:

Вот мой обновленный файл конфигурации. Но теперь это вызывает 500 ошибок.

ответ знакомства CodingGorilla в ниже :)

ответ

2

Для того, чтобы избавиться от index.html после редиректа, падение {R:1}. Но тогда вам нужно будет изменить это правило так, чтобы он вызывал только для запросов /index.html и создавал новое правило, которое запускается на других страницах, которое содержит {R:1}, так что запросы на example.com/mypage.html будут по-прежнему получать перенаправлен правильно.

Edit:

Edit # 2

И окончательный ответ!

на нашем чате основание, я думаю, что это окончательный набор правил:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
     <rewrite> 
      <rules> 
       <rule name="CanonicalHostNameRule1" stopProcessing="true"> 
        <match url="index\.htm(?:l)?" /> 
         <conditions> 
          <add input="{HTTP_HOST}" pattern="example\.com$" /> 
         </conditions> 
         <action type="Redirect" url="http://www.example.com/" /> 
       </rule> 
       <rule name="CanonicalHostNameRule2" stopProcessing="true"> 
        <match url="(.*)" /> 
        <conditions> 
         <add input="{HTTP_HOST}" pattern="^example\.com$" /> 
        </conditions> 
        <action type="Redirect" url="http://www.example.com/{R:1}" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 
+0

Отлично! Как мне это сделать? ха – Batfan