Isapi Rewrite

De Wiki Locaweb
Ir para: navegação, pesquisa

Índice

Hospedagem Windows Isapi Rewrite nos Planos de Hospedagem Windows


 Os clientes da Revenda Windows precisarão utilizar o ISAPI Rewrite 3



O componente Isapi Rewrite trabalha da mesma forma que o mod_Rewrite do Apache manipulando e "reescrevendo" a URL do site. Você pode utilizar este componente de diversas formas baseado em expressões regulares.

Obs: Para reescrita em de URL em Linux com Apache consulte:


Versões


Planos de Hospedagem

Na Locaweb, temos as seguintes versões deste componente:

  • Windows 2003:

- Isapi Rewrite 2: Trabalha com o arquivo de configuração httpd.ini

- Isapi Rewrite 3: Trabalha com o arquivo de configuração .htaccess

  • Windows 2008:

- Isapi Rewrite 3: Trabalha com o arquivo de configuração .htaccess

Revenda Windows

  • Windows 2003:

- Isapi Rewrite 3: Trabalha com o arquivo de configuração .htaccess


Observação Importante: Em ambiente Windows é normal o arquivo .htaccess ficar oculto, não sendo possível visualizá-lo pelo Gerenciador de Arquivos por exemplo. Dessa forma, a manipulação do mesmo pode ser feita no acesso Acesso FTP via Prompt do Windows ou por utilizar algum programa de acesso FTP que dê suporte à exibição de arquivos ocultos tal como os indicados no artigo http://ajuda.locaweb.com.br/pt-br/FTP.

Porém, caso seu plano de Hospedagem esteja na plataforma Windows 2008, o .htaccess será exibido sem problemas na listagem de arquivos



Utilizando o Isapi Rewrite 2 (não recomendado para os planos de Revenda)

No exemplo abaixo, temos uma área de hospedagem com o domínio principal site1.com.br e o domínio adicional site2.com.br, cada domínio será um site diferente. Ao invés de trabalharmos com o redirect do ASP, usaremos o Isapi Rewrite para manter a mesma URL acessada, mas abrir o site em uma subpasta na raiz do site (pasta /web).

O Isapi Rewrite 2 usa um arquivo de configuração chamado [ httpd.ini ] (depende da versão), que deve ficar na raiz do site(\Web\) com as configurações e expressões regulares que serão utilizadas.

Continuando nosso exemplo, iremos criar o arquivo httpd.ini com a seguinte programação:

Arquivo: httpd.ini

[ISAPI_Rewrite]

#Configuração para o site1
RewriteCond Host: (?:www\.)?site1\.com\.br
RewriteRule (.*) /site1/$1 [I,L]

#Configuração para o site2
RewriteCond Host: (?:www\.)?site2\.com\.br
RewriteRule (.*) /site2/$1 [I,L]

Colocando este exemplo na pasta /Web/, basta colocar os arquivos do site1 na pasta /Web/site1/ e os arquivos do site2 na pasta /Web/site2/ .

Exemplos de uso

Instruções Faça com que o Google acesse seu sitemap dinâmico (e não estático),através da seguinte URL : www.seusite.com.br/sitemap.asp. Como todos sabem, utilizando a extensão .asp num sitemap estaria fugindo dos padrões, ao invés de .xml

[ISAPI_Rewrite]
#Transforma o arquivo www.seusite.com.br/sitemap.asp em www.seusite.com.br/sitemap.xml
RewriteRule /sitemap\.xml /sitemap.asp

Instruções Você poderá também manipular o arquivo robots.txt dinamicamente, da seguinte forma:
Como todos sabem, utilizando a extensão .asp num sitemap estaria fugindo dos padrões, ao invés de .xml

[ISAPI_Rewrite]
#Transforma o arquivo www.seusite.com.br/robots.asp em www.seusite.com.br/robots.txt
RewriteRule /robots\.txt /robots.asp


WWW vs NO-WWW
Instruções Para padronizar sua URL sempre com o www. no começo basta fazer isso:

[ISAPI_Rewrite]
RewriteCond Host: ^seusite.com.br
RewriteRule (.*) http\://www.seusite.com.br [RP,L]

RewriteCond Host: ^http\://seusite.com.br
RewriteRule (.*) http\://www.seusite.com.br [RP,L]

Utilizando o Isapi Rewrite 3

No exemplo abaixo, temos uma área de hospedagem com o domínio principal site1.com.br e o domínio adicional site2.com.br, cada domínio será um site diferente. Ao invés de trabalharmos com o redirect do ASP, usaremos o Isapi Rewrite 3 para manter a mesma URL acessada, mas abrir o site em uma subpasta na raiz do site (pasta /web).

O Isapi Rewrite 3 usa um arquivo de configuração chamado [ .htaccess ], que deve ficar na raiz do site(\Web\) com as configurações e expressões regulares que serão utilizadas.

Continuando nosso exemplo, iremos criar o arquivo .htaccess com a seguinte programação:

Arquivo: .htaccess

RewriteEngine on
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase 
# unsupported directive: [ISAPI_Rewrite]

# Evita o download do arquivo .htaccess via browser
RewriteRule ^/.htaccess$ /erros/404.asp

#Configuração para tratamento das barras no endereço
#  Este é um caso comum para erros do tipo
#  www.site.com.br/produto/3335-cadeira e
#  www.site.com.br/produto/3335-cadeira/
RewriteRule ^([^.?]+[^.?/])$ $1/ [R,L]

#Configuração para o site1
RewriteCond %{HTTP:Host} ^(?:www\.)?site1\.com$
RewriteRule (.*) /site1$1 [NC,L,NS]

#Configuração para o site2
RewriteCond %{HTTP:Host} ^(?:www\.)?site2\.com$
RewriteRule (.*) /site2$1 [NC,L,NS] 

Colocando este exemplo na pasta /Web/, basta colocar os arquivos do site1 na pasta /Web/site1/ e os arquivos do site2 na pasta /Web/site2/ .

Exemplos de uso

Instruções Escondendo a extensão dos arquivos da sua hospedagem. No exemplo abaixo, acessar http://site1.com.br/teste irá exibir o conteúdo da página teste.asp

RewriteEngine on

#Redirect extension requests to avoid duplicate content
RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

#Internally add extensions to request
RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

Exemplos de uso para MediaWiki

Se você fez a instalação do MediaWiki na sua hospedagem e quer que a URL exibida no navegador seja no mesmo formado que a Wiki da Locaweb, como http://www.site.com/wiki/Página_principal, siga a orientação abaixo:


Pré-requisitos

  • Vamos assumir que sua aplicação MediaWiki foi instala no caminho /Web/wiki da sua hospedagem;
  • O endereço da sua aplicação MediaWiki deve ser o site principal ou se for um domínio adicional, deve apontar para o site principal. Isso é necessário para que a requisição do endereço não caia no rewriter de site adicional;
  • Certifique-se que não exista nenhum arquivo .htaccess dentro do diretório da aplicação MediaWiki. Esse arquivo é oculto quando se visualiza os arquivos por qualquer programa FTP. Para que se possa excluir o arquivo, utilize o aplicativo de linha de comando do Windows, FTP.

Tendo verificado os itens acima, vamos aos passos "práticos":

Instruções Crie um arquivo como nome htaccess.txt no Bloco de Notas com o seguinte conteúdo:

RewriteEngine On

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

RewriteRule ^(.*)$ index.php?title=$1 [NC,L,QSA]

Estamos criando o arquivo com o nome de htaccess.txt pois o Windows não permite que chamemos o arquivo de .htaccess

Instruções Faça o upload do arquivo htaccess.txt para a pasta /Web/wiki/ usando qualquer aplicativo FTP;

Instruções Re-nomeie o arquivo htaccess.txt para .htaccess;

Instruções No arquivo LocalSettings.php da sua aplicação MediaWiki, adicione/altere as seguintes linhas:

$wgScript 	    = "/wiki";
$wgArticlePath      = "$wgScript/$1";
$wgScript 	    = "$wgScriptPath/index.php";


É possível a utilização das regras a partir de um diretório em específico .

Obs : esta regra não vale para Sites Adicionais


Arquivo de configuração do Isapi Rewrite

#Habilita a reescrita de urls
RewriteEngine on

#Define o caminho base
RewriteBase \siteAdicional\

#Coloque aqui suas regras de reescrita de url's

#Regra que quando for acessado o teste.html, o servidor vai processar o teste.asp
RewriteRule teste\.html$ teste.asp 

Revenda Windows Manipulação de URL's, via web.config ("www" vs "no-www")

O exemplo abaixo demonstra o manipulação de URL's, via web.config. Neste, é possível ocultar o termo "www" do endereço de seu site nos browsers. Desta mesma forma, também é possível forçar o visualização do mesmo. O exemplo abaixo é utilizável somente em Servidores Windows 2008.

Segue exemplos:


Para ocultar a visualização do "www"

<!-- Foi utilizado como exemplo o domínio: seudominio.com.br -->
<?xml version="1.0"?>
<configuration>
      <rewrite>
        <rules>
          <rule name="Ocultar www" stopProcessing="true">
            <match url="(.*)" ignoreCase="true" />
            <conditions>
              <add input="{HTTP_HOST}" pattern="^www\.seudominio\.com.br$" />
            </conditions>
            <action type="Redirect" url="http://seudominio.com.br/{R:1}" redirectType="Permanent" />
          </rule>
        </rules>
      </rewrite>
   </system.webServer>
</configuration>


Para forçar a visualização do "www"

<?xml version="1.0"?>
<configuration>
<!-- Foi utilizado como exemplo o domínio: seudominio.com.br -->
     <rewrite>
        <rules>
          <rule name="Visualizar www" stopProcessing="true">
            <match url="(.*)" ignoreCase="true"/>
            <conditions>
              <add input="{HTTP_HOST}" pattern="^seudominio\.com.br$"/>
            </conditions>
            <action type="Redirect" url="http://www.seudominio.com.br/{R:0}" redirectType="Permanent"/>
          </rule>
        </rules>
      </rewrite>
   </system.webServer>
</configuration>


OBS: Caso já possua um web.config em sua aplicação, este script deve ser incluído dentro da tag <system.webServer>.

Revenda Windows Utilizando o ISAPI Rewrite na Revenda Windows

Está disponível a partir da Pleskwin04.

Habilitar o IP Rewrite na Revenda Windows, você fará o seguinte:

Instruções Acesse o Plesk e clique sobre o domínio que utilizará o ISAPI Rewrite;

Instruções Clique em Configuração

Instruções Habilite o suporte ao .NET, conforme o exemplo a seguir:

ISAPI Rewrite na Revenda Windows

Instruções Em seguida, ajuste as permissões de acordo com as instruções a seguir.

Permissão de leitura ao usuário pool do servidor

Instruções Primeiramente, acesse o Plesk e clique sobre o domínio;

Instruções Em seguida, clique em        Gerenciador de arquivos

Instruções Abra a pasta HTTPDOCS;

Instruções À direita do arquivo .htaccess, clique sobre o ícone Alterar Permissões

Instruções Por fim, dê a permissão Ler e executar para o usuário que estiver disponível, conforme exemplos abaixo:

  • Plesk IIS WP User (IWAM_plesk(default))
  • Plesk IIS WP User (IWPC_XXX(login_ftp)) - se utilizar pool dedicado


Permissão de leitura no Plesk Windows

Caso seu domínio no Plesk utilize "URL's protegidas","Proteção de link ativa" ou rodar o PHP como ISAPI ocorre um conflito dos filtros ISAPI do Painel Plesk com os ISAPI Rewrite. Nesses casos, abra um chamado em nosso HelpDesk, na categoria "Revenda Windows" requisitando a configuração adequada dos filtros ISAPI


Testes para conferir se a versão 3 do ISAPI está funcionando em seu domínio


Teste 01 - Impedir o download do arquivo .htaccess via navegador:

Instruções Crie um .htaccess dentro da pasta raíz do site com o seguinte conteúdo:

RewriteEngine on
RewriteCompatibility2 On
RepeatLimit 200
RewriteBase 
# unsupported directive: [ISAPI_Rewrite]

# Evita o download do arquivo .htaccess via browser
RewriteRule ^/.htaccess$ /erros/404.asp


Instruções Acesse http://seudominio/.htaccess

Instruções Caso o download não inicie, isso indica que o componente está funcionando.


Teste 02 - Ocultar as extensões do arquivo na barra de endereços do navegador:

Instruções Crie um .htaccess dentro da pasta raíz do site com o seguinte conteúdo:

RewriteEngine on

#Redirect extension requests to avoid duplicate content
RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

#Internally add extensions to request
RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp


Instruções Crie um arquivo qualquer com extensão .ASP dentro da pasta raíz do site;

Instruções Acesse o arquivo .ASP pelo navegador: http://seudominio/arquivo.asp

Instruções Caso a extensão .ASP não seja mostrada ao final do endereço, isso indica que o componente está funcionando.


Veja também


Links

Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Ferramentas
Criar um livro