Помощь

Примеры web.config для работы rewrite-правил

Wordpress

Пример web.config для Wordpress хорошо описан в статье Enabling Pretty Permalinks in WordPress на ресурсе Learn IIS7. Для того, что бы правила URL Rewrite были активны, в секцию system.webServer требуется добавить следующее:

<rewrite>
    <rules>
        <rule name="Main Rule" stopProcessing="true">
            <match url=".*" />
            <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="index.php" />
        </rule>
    </rules>
</rewrite>
Скачать пример готового web.config

Joomla

Примеры web.config описаны в статье «Install Joomla! on IIS» на Learn IIS7, а так же в официальной документации к CMS в статье «SEO and IIS». Файл web.config требуется поместить вместо файла .htaccess.

В секцию system.webServer требуется добавить секцию rewrite, описанную ниже (используется пример из статьи SEO and IIS):

<rewrite>
    <rules>
        <clear />
        <rule name="Common Exploit Blocking" stopProcessing="true">
            <match url="^(.*)$" />
            <conditions logicalGrouping="MatchAny">
                <add input="{QUERY_STRING}" pattern="mosConfig_[a-zA-Z_]{1,21}(=|\%3D)" />
                <add input="{QUERY_STRING}" pattern="base64_encode.*\(.*\)" />
                <add input="{QUERY_STRING}" pattern="(\&lt;|%3C).*script.*(\>|%3E)" />
                <add input="{QUERY_STRING}" pattern="GLOBALS(=|\[|\%[0-9A-Z]{0,2})" />
                <add input="{QUERY_STRING}" pattern="_REQUEST(=|\[|\%[0-9A-Z]{0,2})" />
            </conditions>
            <action type="Redirect" url="index.php" appendQueryString="false" redirectType="SeeOther" />
        </rule>
        <rule name="Joomla Search Rule" stopProcessing="true">
            <match url="(.*)" ignoreCase="true" />
            <conditions logicalGrouping="MatchAll">
                <add input="{URL}" pattern="^/search.php" ignoreCase="true" />
            </conditions>
            <action type="Rewrite" url="/index.php?option=com_content&amp;view=article&amp;id=4" />
        </rule>
        <rule name="Joomla Main Rewrite Rule" stopProcessing="true">
            <match url="(.*)" ignoreCase="true" />
            <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                <add input="{URL}" pattern="(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$" />
            </conditions>
            <action type="Rewrite" url="index.php/" />
        </rule>
    </rules>
</rewrite>
<caching>
    <profiles>
        <add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
    </profiles>
</caching>

Скачать готовый web.config