У меня есть php-сайт, размещенный на сервере Azure (IIS-сервер), я хочу настроить тестовую среду для этого сайта, как это http://example.com/test1/, но проблема в том, что существующее правило перезаписи обрабатывает ‘test1’ как параметр (имя контроллера), а не как имя папки,
<rewrite>
<rules>
<rule name="Rule" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
<add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
это правило перезаписи из файла web.config, которое я сейчас использую. example.com/index/login работает нормально, но example.com/test1/index/login возвращает ошибку «application / default / controller / test1.php» на странице, код все еще выполняется из корневой папки. Пожалуйста, дайте мне знать, как решить эту проблему.
Если вы хотите установить тестовую среду, я бы посоветовал вам настроить промежуточную среду для вашего веб-приложения, см. https://azure.microsoft.com/en-gb/documentation/articles/web-sites-staged-publishing/ Больше подробностей. Если для каких-то целей вы хотите установить виртуальный каталог для своего веб-приложения, рассмотрите возможность настройки на портале Azure. Это очень легко сделать, вы можете настроить его следующим образом:
а затем разверните свое приложение в этой «тестовой» папке. Надеюсь это поможет.
Других решений пока нет …