Archive

Posts Tagged ‘URL’

Pretty Permalinks em IIS7 com Wordpress

October 13th, 2009

Finalmente, concluí as mudanças de webserver ao nível de hosting e base de dados. Neste momento este blog bomba em Windows 2008  – ISS 7.0 com Wordpress 2.8.4 em cima de MySQL 5.0.

Após mudanças, algo que me deixou contente foi a possibilidade de finalmente ter “prettylinks” no wordpress. Também designados por friendly URL, ou fancy URL, fancy links, whatever,  são links por vezes mais curtos, visualmente mais relevantes e mais eficazes na indexação de páginas. Na vez de termos por exemplo:

http://fredcerdeira.com/blog/?p=502 , temos:
http://fredcerdeira.com/blog/2009/05/deepzoom-paris

Algo mais agradável e facilmente percebemos que foi um post de 2009, no mês 05 com o titulo “deep-zoom paris”. Escondemos assim a passagem de variáveis no querystring e os motores de busca agradecem. Desta forma garantimos também a possibilidade de manter os links e mudar completamente a tecnologia que está por trás a gerar o HTML.

Esta reconversão de links é possível graças aos mecanismos de URL Rewrite, ou seja, a recodificação dos links através de software. No caso dos servidores APACHE, esta reconversão é possível através do módulo mod_rewrite. 

Nos servidores IIS (Internet Information Services) da Microsoft, é possível obter resultados semelhantes através da extensão URL Rewrite. A partir da versão 7, os senhores do IIS disponibilizam gratuitamente um módulo para as versões X86 e x64 que funciona muito bem.

Para termos uma administração remota ao nosso servidor IIS, é necessário primeiramente que o hosting provider forneça autorização para acesso remoto, e de ter o módulo URL Rewrite Instalado no Windows 2008 ( a maioria dos hosting providers que disponibilizam alojamento windows 2008, têm também o módulo instalado)

necessitamos também de uma consola muito útil designada por “IIS Manager for Remote Admin”. Através desta consola temos acesso remoto ao nosso servidor e conseguimos realizar a maior parte das operações necessárias à configuração do nosso webserver, como por exemplo a configuração do módulo de URL Rewrite.

fredcerdeiraIIS7

Mas para tirar partido da funcionalidade  “prettylinks” do wordpress, não necessitamos de configuração nenhuma do módulo ao nível do IIS.

No entanto é necessário atender aos Requisitos:

1. IIS 7.0 com FASTCGI e PHP

2. wordpress ( a última versão de preferência)

3. Módulo de URL Rewrite instalado

 

No dashboard do nosso wordpress, em “Permalink Settings” vamos criar a a estrutura “/%year%/%monthnum%/%day%/%postname%/” e Guardar.

permalinks_wordpress

Após Guardar, é necessário criar um ficheiro do tipo web.config, que é basicamente um ficheiro XML que contem settings que o webserver interpreta. Se o wordpress, não apresentar um painel de configuração deste ficheiro, é necessário criar um ficheiro de raiz, com o Notepad ou outro qualquer editor e colocá-lo na raíz da pasta onde está o blog. (Não esquecer de guardar com o nome “web” a extensão “.config”)

O ficheiro terá que ter o seguinte código:

<?xml version="1.0"?>
<configuration>
    <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>
    </system.webServer>
</configuration>

 Estas regras correspondem às definições default do módulo URL Rewrite do IIS.

Depois do upload do web.config, testem no vosso blog se os links estão todos a funcionar correctamente.

 

Se eventualmente (no meu blog aconteceu), os posts da home page e os posts resultantes do “search” não forem apresentados, é necessário adicionar ao web.config, a seguir ao <system.webServer>:

<defaultDocument>
            <files>
                <remove value="index.php" />
                <add value="index.php" />
            </files>
        </defaultDocument>

Desta forma garantimos que todas as páginas geradas por “index.php” são apresentadas correctamente.

 

Se tudo funcionar correctamente, conseguem ter links bonitos no vosso browser.

fredBlog

design, tecnologia , , , ,