Установка Laravel 5.7 на сервер IIS, что эквивалентно правилам перезаписи модов Apache для IIS?
Встроенный автоконвертер IIS выдает ошибку в своем инструменте конвертации.
ПРАВИЛА АПАЧИ
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
ОШИБКИ IIS
<rewrite>
<rules>
<!--The rule cannot be converted into an equivalent IIS format because of unsupported flags: E-->
<rule name = "Imported Rule 2" stopProcessing = "true">
<match url = "^" ignoreCase = "false" />
<conditions>
<add input = "{REQUEST_FILENAME}" matchType = "IsDirectory" ignoreCase = "false" negate = "true" />
<add input = "{REQUEST_FILENAME}" matchType = "IsFile" ignoreCase = "false" negate = "true" />
</conditions>
<action type = "Rewrite" url = "index.php" />
</rule>
</rules>
</rewrite>
Заранее спасибо. С наилучшими пожеланиями,
ВикторБарна
Я думаю, в конце концов, это проблема конфигурации. Если вы не знакомы с IIS (что я предполагаю, основываясь на том, как это было задано), лучший совет, который я могу дать, это обратиться к системному администратору, который заботится об IIS. Если вы также не знакомы с Apache, а ваш новый системный администратор тоже не знаком, вам необходимо собрать вместе старого и нового системных администраторов, чтобы они могли транслировать конфигурацию между двумя веб-серверами. Это задокументировано
Окончательное решение заключалось в редактировании файла web.config. Большое вам спасибо за вашу помощь! Если бы у меня были разрешения, я бы отметил ваш ответ как решение :)






Окончательным решением было редактирование файла web.config.
В этом случае для Laravel 5.7 и IIS со значением:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name = "Imported Rule 1" stopProcessing = "true">
<match url = "^(.*)/$" ignoreCase = "false" />
<conditions>
<add input = "{REQUEST_FILENAME}" matchType = "IsDirectory" ignoreCase = "false" negate = "true" />
</conditions>
<action type = "Redirect" redirectType = "Permanent" url = "/{R:1}" />
</rule>
<rule name = "Imported Rule 2" stopProcessing = "true">
<match url = "^" ignoreCase = "false" />
<conditions>
<add input = "{REQUEST_FILENAME}" matchType = "IsDirectory" ignoreCase = "false" negate = "true" />
<add input = "{REQUEST_FILENAME}" matchType = "IsFile" ignoreCase = "false" negate = "true" />
</conditions>
<action type = "Rewrite" url = "index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Я предлагаю вам обратиться к web.config ниже, чтобы узнать, как запустить Laravel в IIS. github.com/laravel/laravel/blob/master/public/web.config