IIS web.config Проблема - PullRequest
0 голосов
/ 06 мая 2019

Недавно я переключился с LAMP на выделенном сервере, размещенном в RackSpace, на веб-приложение Azure.У меня есть PHP-приложение, написанное так, что оно не всегда включает .php в конце перенаправления, и хочет скрыть .php в URL-адресе, когда это возможно.

Использование .htaccessк конвертеру web.config Я придумал это, но я получаю внутреннюю ошибку сервера на ЛЮБОЙ странице, я иду на ... .php или нет.Если я удалю web.config, я смогу получить доступ к страницам, введя .php в URL.

  <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
<rewrite>
    <rule name="hide php extension" stopProcessing="true">
        <match url="^(.*)/$" />
        <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
        </conditions>
        <action type="Rewrite" url="{R:1}.php" />
    </rule>
</rules>
</rewrite> 
  </system.web>
</configuration>

Я что-то упустил?Я бы подумал, что это будет легко, но, очевидно, это за пределами моих возможностей.Я поиграл с различными правилами, опубликованными здесь, но еще недостаточно знаю об IIS, чтобы написать свои собственные правила.

1 Ответ

0 голосов
/ 07 мая 2019

Вы можете попробовать добавить приведенное ниже правило в ваш файл web.config:

 <rule name="Redirect .php extension" enabled="true" stopProcessing="false">
  <match url="^(.*).php$" ignoreCase="true" />
<conditions logicalGrouping="MatchAny">
  <add input="{URL}" pattern="(.*).php$" ignoreCase="false" />
</conditions>
  <action type="Redirect" url="{R:1}" redirectType="Permanent" />
</rule>

<rule name="hide .php extension" enabled="true" stopProcessing="true">
  <match url="^(.*)$" ignoreCase="true" />
<conditions>
  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
  <add input="{REQUEST_FILENAME}.php" matchType="IsFile" />
</conditions>
  <action type="Rewrite" url="{R:0}.php" />
</rule>

enter image description here

С уважением, Jalpa

...