web.config не работает в IIS8.0

Я перевожу небольшое PHP-приложение в веб-приложение Microsoft Azure.

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

Предыдущий у меня был этот файл .htaccess в одном подкаталоге:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ api.php?rquest=$1 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ api.php [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^(.*)$ api.php [QSA,NC,L]
</IfModule>

Теперь у меня есть этот файл web.config, я сгенерировал его с помощью онлайн-инструмента и немного изменил его.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1J" stopProcessing="true">
<match url="(.*)"  ignoreCase="true" />
<action type="Rewrite" url="/api.php?rquest={R:1}"  appendQueryString="true" />
</rule>
<rule name="rule 2J" stopProcessing="true">
<match url="(.*)"  ignoreCase="true" />
<action type="Rewrite" url="/api.php"  appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>

Теперь я не получаю ошибку 404 при попытке получить доступ к странице. Похоже, web.config не работает вообще.

Может кто-нибудь сказать мне, что не так с моим файлом?

0

Решение

Есть небольшая ошибка регулярного выражения.

Это мой каталог тестовых проектов:

введите описание изображения здесь

И вот мой тест web.config:

<?xml version="1.0"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1J" stopProcessing="true">
<match url="^(.*)$"  ignoreCase="true" />
<action type="Rewrite" url="/api.php?request={R:1}"  appendQueryString="true" />
</rule>
<rule name="rule 2J" stopProcessing="true">
<match url="^(.*)$"  ignoreCase="true" />
<action type="Rewrite" url="/api.php"  appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Результатом является то, что при посещении <web_app_name>.azurewebsites.net , это соответствует 2-му правилу и переписать в <web_app_name>.azurewebsites.net/api.php ,

И при посещении <web_app_name>.azurewebsites.net/example , это соответствует 1-му правилу и переписать в <web_app_name>.azurewebsites.net/app.php?request=example

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]