Используйте urlrewrite, чтобы переписать все запросы к root - PullRequest
1 голос
/ 31 января 2011

Я хочу использовать web.config и urlrewrite IIS для перезаписи всех запросов в определенный каталог к ​​корню, например:

От:

mydomain.com/directory/test.php

Кому:

mydomain.com/test.php

и

От:

mydomain.com/directory/test/test.php

Кому:

mydomain.com/test/test.php

Все параметры и т. Д. Также должны быть переданы. Любая идея, как это сделать, используя web.config?

1 Ответ

0 голосов
/ 31 января 2011

У меня было требование для этого некоторое время назад, и я нашел это:

Использование перезаписи URL для "удаления" папки

Естьнебольшая ошибка в правиле, которая была исправлена ​​позже постером.Вот копия с исправлением, если ссылка иссякнет (я также сделал ее более общей для ваших требований):

<rewrite>
  <rules>   
    <rule name="RemoveDirectory" stopProcessing="true">
      <match url="^directory$|^directory/(.*)$" />
      <conditions>
      </conditions>
      <action type="Redirect" url="{R:1}" />
    </rule>
    <rule name="RewriteToFile">
      <match url="^(?!directory/)(.*)" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="directory/{R:1}" />
    </rule>
  </rules>
</rewrite>

Просто найдите и замените directory на каталог имя.

...