Habilitando URLs amigáveis para mecanismos de pesquisas (SEF) no IIS7

From Joomla! Documentation

< Enabling Search Engine Friendly (SEF) URLs on IIS
Revision as of 03:18, 7 July 2022 by Gkiyoshinishimoto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Other languages:
English • ‎français • ‎português do Brasil

Se você tiver um servidor executando o IIS 7 e o PHP, poderá aproveitar a própria reescrita de URL interna do IIS usando um arquivo web.config semelhante ao listado abaixo.

Você pode criar o arquivo sozinho ou usar a interface gráfica do usuário no gerenciador do IIS7. Você pode importar regras do .htaccess usando o assistente da interface gráfica do usuário.

Esta funcionalidade depende da presença do Módulo de reescrita de URL do IIS, que não vem com o Windows. É um download gratuito e um produto da Microsoft.

Interface gráfica do usuário

Se o módulo de reescrita de URL do IIS estiver instalado, o gerenciador de seu site terá uma ferramenta para "reescrita de URL", visível na exibição do gerenciador dos IIS dos módulos para IIS configuráveis do seu site. A interface é amplamente auto-explicativa. Expressões regulares, curingas ou correspondências exatas são todas suportadas.

Na configuração do Joomla, ative o mod_rewrite do SEF e do Apache, em seguida, crie uma regra na reescrita de URL do IIS:

Pattern field: ^([^/]+)/?$
Ignore case ON
Action type: Rewrite
Rewrite URL: index.php/

web.config

Isso foi testado no Joomla 1.5 com IIS 7 no Windows Server 2008 sem problemas até agora. Para obter mais informações sobre como converter .htaccess para web.config, confira http://learn.iis.net/page.aspx/557/translate-htaccess-content-to-iis-webconfig/

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <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="{URL}" pattern="(/[^.]*|\.(php|html?|feed|pdf|raw))$" />
                        <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>
        <caching>
            <profiles>
                <add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
            </profiles>
        </caching>
    </system.webServer>
</configuration>