Мой файл .htaccess не работает на IIS - PullRequest
1 голос
/ 20 апреля 2011

У меня есть следующая конфигурация перезаписи в моем файле .htaccess, которая нормально работает на сервере apache, но не работает должным образом на сервере IIS.

Options +FollowSymlinks 
RewriteEngine on
RewriteCond %{HTTP_HOST} ^myservername/$ [NC]
RewriteRule ^(.*)$ http://myservername/$1 [R=301,L]
RewriteRule !\.(php|png|gif|jpg|css|htm|html|txt|js|swf|xml|ico|mp3|csv|wav|mid) /index.php [L,QSA]

Как мне заставить это работать на IIS?

Ответы [ 2 ]

4 голосов
/ 21 апреля 2011

IIS не поддерживает .htaccess из коробки. Чтобы использовать правила mod_rewrite в стиле Apache для IIS, вам потребуется сторонняя программа перезаписи, например Iconics ISAPI Rewrite Filter или HeliconTech ISAPI_Rewrite . Возможно, вам придется настроить правила перезаписи, потому что не все директивы mod_rewrite поддерживаются или применимы (потому что Windows не Unix).

Если вы работаете с IIS7 и на нем установлен UrlRewriter (это бесплатно), вы можете использовать его, но вам нужно будет преобразовать правила перезаписи в совершенно другой формат.

2 голосов
/ 27 июня 2015

, пожалуйста, создайте новый файл с именем web.config и вставьте следующий

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile"  />                      
                    </conditions>
                    <action type="None" />
                </rule>
                <rule name="Imported Rule 2" stopProcessing="true">
                    <match url="^(.*)$" />
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...