Перевести .htaccess на web.config для IIS - PullRequest
1 голос
/ 10 августа 2011

У меня есть следующий код для .htaccess, который очень хорошо работает на Apache

RewriteEngine On
RewriteBase /folder

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule index.php.* - [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*) index.php?id=$1

Но мне нужно работать на сервере с IIS. Не могли бы вы помочь мне перевести его для IIS? Большое спасибо.

1 Ответ

1 голос
/ 18 июля 2012

Если вы используете IIS 7, вы можете установить расширение перезаписи URL для IIS, предоставляемое Microsoft.Это расширение также имеет функцию для импорта файлов .htaccess.Иногда не все строки могут быть преобразованы (см. Вторую строку кода ниже).Мы должны сделать небольшую корректировку.Скопируйте и вставьте результаты из вкладки «XML View» в диалоговом окне импорта в текстовый редактор и сохраните его как файл «web.config».Вот ваш конвертированный .htaccess:

<rewrite>
  <!--This directive was not converted because it is not supported by IIS: RewriteBase /folder.-->
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="index.php.*" 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="None" />
    </rule>
    <rule name="Imported Rule 2">
      <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?id={R:1}" appendQueryString="false" />
    </rule>
  </rules>
</rewrite>

ПРИМЕЧАНИЕ: результат прямого импорта еще не настроен.

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