Как переписать URL с косой чертой в IIS - PullRequest
0 голосов
/ 11 декабря 2018

В настоящее время у меня проблема в том, что я хочу переписать URL-адрес из корневой папки в моем файле IIS web.config.Моя конфигурация теперь выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="phpmyadmin" stopProcessing="true">
                    <match url="(.*)phpmyadmin(.*)" />
                </rule>
                <rule name="redirect" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="/test/{REQUEST_URI}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Установлен также phpMyAdmin, как вы можете видеть в конфигурации.Это будет разделено, потому что у меня есть следующая структура файла:

  • wwwroot (Root)
    • phpmyadmin
      • index.php
    • тест (целевая страница по умолчанию)
      • подтест
        • index.html
      • index.html

Когда пользователь вводит URL-адрес, например http://localhost/, он должен получитьпереписать на самом деле http://localhost/test.Если он наберет http://localhost/subtest/, тогда он должен получить переписать на http://localhost/test/subtest.

Это уже работает со сценарием.Но проблема в том, что теперь я не могу набрать http://localhost/subtest (завершающий слеш отсутствует) и переписать на http://localhost/test/subtest.Вместо этого меня перенаправляют на http://localhost/test/subtest и, конечно, он не найдет папку, потому что корень все еще остается в папке test.

Может кто-нибудь мне помочь?

Спасибозаранее.

1 Ответ

0 голосов
/ 11 декабря 2018

После многих попыток у меня теперь есть обходной путь, как решить это.Теперь я проверяю, был ли URL вызван с тестовой папкой на первом месте.В этом случае он будет перенаправлен на правильный URL.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="phpmyadmin" stopProcessing="true">
                    <match url="(.*)phpmyadmin(.*)" />
                </rule>
                <rule name="redirect" stopProcessing="true">
                    <match url="^test/(.*)" />
                    <action type="Redirect" url="/{R:1}" />
                </rule>
                <rule name="rewrite" stopProcessing="true">
                    <match url="^(.*)" />
                    <action type="Rewrite" url="/test/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
...