web.config для перенаправления всех запросов в index.php, кроме физических файлов и каталогов - PullRequest
0 голосов
/ 01 мая 2018

я пытаюсь загрузить скрипт php на сервер windows iis в скрипте php у нас есть файл htacess, который направляет весь запрос к index.php, поэтому мы можем получить

site.com / что-то

вместо

site.com / index.php? / Что-то

но он не работает на сервере Windows, поэтому я попытался найти версию web.config, вот что я нашел

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <!-- Quitar los slash '/' del final de la ruta -->
        <rule name="RewriteRequestsToPublic">
          <match url="^(.*)$" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
          </conditions>
          <action type="Rewrite" url="/{R:0}" />
        </rule>

        <!-- Si el archivo o carpeta solicitado no existe, se realiza la petición a través de index.php -->
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^(.*)$" ignoreCase="false" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.php/{R:1}" appendQueryString="true" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

это вроде работает, но не загружает статические файлы (css, js), как если бы я перешел на

site.com / государственный / JS / jquery.js

я получаю эту ошибку

HTTP Error 500.52 - URL Rewrite Module Error.
The page cannot be displayed because an internal server error has occurred.
Detailed Error Information
Module  RewriteModule
Notification    SendResponse
Handler StaticFile
Error Code  0x800700b7
Config Error    Cannot add duplicate collection entry of type 'rule' with unique key attribute 'name' set to 'Imported Rule 1'
Config File \\?\C:\HostingSpaces\phoenarts\site.com\wwwroot\public\web.config

в основном это работает, мне нужно сказать ему игнорировать ссылку на каталог и файлы статических файлов

1 Ответ

0 голосов
/ 03 мая 2018

Ошибка подразумевает, что у вас уже есть правило, объявленное где-то с именем Imported Rule 1. Попробуйте изменить имя правила в файле, указанном в ошибке.

Если у вас есть файл web.config в ~ / public и другой файл в корневом веб-каталоге, оба файла объединяются для запросов к вашим статическим ресурсам. Похоже, что происходит?

Вы можете использовать несколько web.configs для настройки разных путей, как это, но вы не должны дублировать правила между ними.

Вы также можете использовать элементы <location> в корневом web.config для настройки различных путей (в качестве альтернативы использованию нескольких файлов web.config).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...