URL IIS перезаписать на основе корневого URL - PullRequest
1 голос
/ 10 ноября 2011

Я пытаюсь переписать URL:

www.mydomain.com / urlfolder / filename.aspx

чтобы указать

www.mydomain.com / urlfolder / newfile.aspx

Моя веб-конфигурация имеет следующее:

    <rule name="PageRedirection" enabled="true" stopProcessing="true">
      <match url="urlfolder/filename.aspx" />
      <action type="Redirect" url="urlfolder/newfile.aspx" redirectType="Permanent" />
    </rule>

проблема в том, что это ловит URL, такие как:

www.mydomain.com / подкаталог / urlfolder / filename.aspx

Я пытался изменить свой URL, чтобы быть но ^ не сработало. Также кажется, что ~ / не работает для определения корня либо.

Как мне указать этот URL-адрес из корня без указания абсолютного пути.

У меня также есть:

testsite.mydomain.com /

и я хочу, чтобы тот же web.config, развернутый там, работал. Спасибо!

1 Ответ

2 голосов
/ 06 октября 2015

Я знаю, что этому вопросу уже почти 4 года, так что вы, вероятно, давно уже не нуждаетесь в ответе.

^ должно работать, хотя:

<rule name="PageRedirection" enabled="true" stopProcessing="true">
    <match url="^urlfolder/filename.aspx" />
    <action type="Redirect" url="urlfolder/newfile.aspx" redirectType="Permanent" />
</rule>

^ указывает начало строки пути, поэтому все, что вы ставите после ^, будет соответствовать только тому, что появляется сразу после корня сайта и косой черты.

например,

www.example.com / urlfolder / filename.aspx

будет соответствовать.

www.example.com / подкаталог / urlfolder / filename.aspx

НЕ будет соответствовать.

Единственная причина, по которой я могу подумать, почему он будет соответствовать /subdirectory/urlfolder/filename.aspx, как вы говорите, состоит в том, что в вашем подкаталоге / есть копия вашего web.config, и в этом случае www.example.com/subdirectory/ рассматривается как корневой.

Если это так, и ваш web.config копируется в места, отличные от вашего корневого каталога, другой вариант - добавить правило в %windir%\system32\inetsrv\config\ApplicationHost.config вместо web.config.Это файл, который содержит все параметры, которые применяются ко всем IIS на вашем компьютере, а не только к определенному сайту.По моему опыту, Visual Studio откажется открывать этот файл.Однако вы можете отредактировать файл в другом редакторе или установить правила перезаписи через графический интерфейс IIS.

В графическом интерфейсе на верхнем уровне дерева файлов инструменты, доступные на этом уровне, включают утилиту перезаписи URL, и установленные там правила пишут в ApplicationHost.config.

Надеюсь, это поможет

...