Apache mod_rewrite в IIS

Установка 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>

Заранее спасибо. С наилучшими пожеланиями,

ВикторБарна

Я предлагаю вам обратиться к web.config ниже, чтобы узнать, как запустить Laravel в IIS. github.com/laravel/laravel/blob/master/public/web.config

Brando Zhang 23.01.2019 08:53

Я думаю, в конце концов, это проблема конфигурации. Если вы не знакомы с IIS (что я предполагаю, основываясь на том, как это было задано), лучший совет, который я могу дать, это обратиться к системному администратору, который заботится об IIS. Если вы также не знакомы с Apache, а ваш новый системный администратор тоже не знаком, вам необходимо собрать вместе старого и нового системных администраторов, чтобы они могли транслировать конфигурацию между двумя веб-серверами. Это задокументировано

hakre 24.01.2019 05:03

Окончательное решение заключалось в редактировании файла web.config. Большое вам спасибо за вашу помощь! Если бы у меня были разрешения, я бы отметил ваш ответ как решение :)

Victor Sotillo 18.02.2019 16:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
3
623
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Окончательным решением было редактирование файла 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>

Другие вопросы по теме