Я занимаюсь развертыванием API, который я разработал с помощью APIGILITY
, для IIS. Поскольку IIS не поддерживает .htaccess, я пытаюсь создать файл web.config из содержимого файла .htaccess. Я использовал IISv7.5 и попытался установить URL-ревертер для преобразования правил. Но я получаю сообщение об ошибке при конвертации. Ниже приведен файл .htaccess и соответствующее преобразование, которое я получаю от urlRewriter.htaccess rules (mod_rewrite) перевод в правила web.config
файл .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
преобразованные правила и ошибки, которые я получаю.
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^.*$" />
<conditions logicalGrouping="MatchAny">
<!--The condition pattern is not supported: -s.-->
<!--The condition pattern is not supported: -l.-->
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
</conditions>
<action type="None" />
</rule>
<!--The rule cannot be converted into an equivalent IIS format because of unsupported flags: E-->
<!--This rule was not converted because it contains references that are not supported: 'ENV::BASE'-->
</rules>
</rewrite>
Могу ли я получить помощь по этому поводу?
Я не думаю, что вы по-прежнему нужен сортировки базы в вашем правиле. На самом деле, хорошо ли, если у вас есть правило, чтобы внутренне переписать каждый файл/папку (кроме существующих) в root 'index.php'? –
Использует ли index.php эту переменную среды? Или это просто сложный способ переписать каждый запрос в файл index.php в этом каталоге? – Sumurai8
Вы смогли решить эту проблему? У меня такая же проблема. –