Как сделать виртуальный каталог частью URL-адреса в IIS без учета регистра для приложения Angular? - PullRequest
0 голосов
/ 06 августа 2020

Я знаю, что в IIS не учитывается регистр. Однако приложение angular обрабатывает базовую часть href URL-адреса с учетом регистра , что означает, что IIS должен изменить базовую href-часть URL-адреса на правильный формат, прежде чем будет задействовано приложение angular.

Итак, у меня есть базовый href, определенный как:

myapp

и

import { Location } from '@angular/common';
// ...
private location: Location

С большим количеством проб и ошибок с приложением angular я не мог получить

this.location.path()

для правильной работы с обоими URL-адресами:

myapp/login

и

myApp/login

, где myapp - это базовый href. Последний из приведенных выше URL-адресов возвращается как myApp / login, а не логин

this.location.path()

Поэтому я хотел бы создать правило перезаписи в IIS, которое нечувствительно обрабатывает виртуальный каталог / базовый регистр href и angular приложение всегда видит URL-адреса, такие как 'login', а не 'myApp / login'.

Однако правила перезаписи URL-адресов IIS кажутся только для части ПОСЛЕ виртуального каталога / базового href.

Что может Я делаю? Как я уже сказал, решение этой проблемы только в IIS было бы лучшим вариантом. Другой вариант, когда базовый href обрабатывается в приложении angular, мог бы быть возможен, но без жесткого кодирования его в приложении я не смог заставить его работать.

1 Ответ

0 голосов
/ 07 августа 2020

IIS не чувствителен к регистру. Кодирование необходимо выполнять в приложении angular. Единственный способ, которым вы можете попробовать, - это правило перезаписи URL-адреса iis для преобразования URL-адреса в верхний или нижний регистр. ниже пример правила:

<rewrite>
    <rules>
        <rule name="LowerCaseRule1" stopProcessing="true">
            <match url="([A-Z].*)" ignoreCase="false" />
            <action type="Redirect" url="{ToLower:{URL}}" />
        </rule>
    </rules>
</rewrite>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...