- Fórum
- /
- Clube do Desenvolvedor
- /
- Clube do Webmaster
- /
- [Tutorial] Urls Amigáveis no Windows Server (IIS 6,7)
[Tutorial] Urls Amigáveis no Windows Server (IIS 6,7)
- rldesign
-
Autor do Tópico
- Offline
- JCB! Hero
-
Menos
Mais
14 anos 6 meses atrás #47051
por rldesign
Rafael Santana
Web Designer | R&L Design - Desenvolvimento Gráfico e Sites
rldesign created the topic: [Tutorial] Urls Amigáveis no Windows Server (IIS 6,7)
No IIS 7, um modulo nativo de URL rewite está disponível. Ele armazena as regras em um arquivo web.config do site, expressa em formato XML. as regras do .htaccess podem ser convertidos para o formato web.config.
No II6um uma extensão de terceiros deve ser usado. A extensão Helicon, que fornece um suporte diretamente as regras .htaccess.
IIS 7 URL Rewriting
Se você tem um servidor com o IIS 7 e PHP, você pode tirar proveito da própria URL rewrite do IIS usando um arquivo web.config semelhante ao abaixo:
Você pode criar o arquivo manualmente ou usando a GUI (interface gráfica) do IIS Manager.
Você pode importar. regras htaccess usando o assistente .
GUI
Se o IIS URL Rewrite module estiver instalado, seu website manager terá uma ferramenta chamada "URL Rewrite", visível na exibição do IIS Manager's (Gerenciador do IIS) os módulos configuráveis do ??seus sites no IIS. A interface é praticamente auto- explicativo.
Expressões regulares, wildcards, ou exact matches são suportados.
web.config
Isso já foi testado com Joomla 1.5 com o IIS 7 no Windows Server 2008 sem problemas até agora. Para obter mais informações sobre a conversão. htaccess para web.config, veja:http://learn.iis.net/page.aspx/557/translate-htaccess-content-to-iis-webconfig/
[url]
<?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="(\<|%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&view=article&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>
</system.webServer>
</configuration>
[/url]
Helicon ISAPI Rewrite
Helicon ISAPI Rewrite 3 é encontrado em: http://www.isapirewrite.com/ ou http://cheeso.members.winisp.net/IIRF.aspx
agora fornecendo funcionalidade quase idêntica do mod_rewrite.
IIS 7 tem o seu próprio módulo rewrite (URL Rewrite ), que é excelentes e não necessita de aplicativos de terceiros. Ele pode ser ativado por meio do Web Platform Installer. Nas configurações do Joomla é precisa habilitar: o SEF (Urls Amigáveis) e Apache mod_rewrite, em seguida, crie uma regra em IIS URL Rewrite: Pattern field: ^([^/]+)/?$ Ignore case ON Action type: Rewrite Rewrite URL: index.php/
Por padrão, as regras do rewrite dever utilizadas com seguinte código inserido no topo do arquivo index.php:
[url]
if (isset($_SERVER))
{
$_SERVER = $_SERVER;
}
[/url]
Primeiro é preciso instalar o ISAPI rewriter de sua escolha: http://www.isapirewrite.com/ ou http://cheeso.members.winisp.net/IIRF.aspx
ISAPI ReWrite possui uma versão free (limitada) e o IIRF (IonicIsapiRewriter) é freeware sempre atualizado, e é grátis!
Ambos precisão ser configurados os arquivos IsapiRewrite4.ini (você não precisa se ??preocupar com o htaccess.txt, é so ignorá -lo) e ( se você estiver usando IIRF IonicIsapiRewriter 2.x veja abaixo para uma mudança de nome de arquivo):
As entradas a seguir para ISAPI REWRITE:
[url]
RewriteLog D:\temp\iirfLog.out
RewriteLogLevel 3
IterationLimit 10
# Joomla/Mambo rewrite rules
RewriteRule ^/$ /index.php
RewriteRule ^/content/blogsection/([^/]+)/([^/]+)/ /index.php?option=com_content&task=blogsection&id=$1&Itemid=$2
RewriteRule ^/content/blogcategory/([^/]+)/([^/]+)/ /index.php?option=com_content&task=blogcategory&id=$1&Itemid=$2
RewriteRule ^/content/section/([^/]+)/([^/]+)/ /index.php?option=com_content&task=section&id=$1&Itemid=$2
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5&$6=$7
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/ /index.php?option=$1&$2=$3
RewriteRule ^/content/category/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=category§ionid=$1=&id=$2&Itemid=$3
RewriteRule ^/content/view/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=view&id=$1&Itemid=$2&limit=$3&limitstart=$4
RewriteRule ^/content/view/([^/]+)/([^/]+)/ /index.php?option=com_content&task=view&id=$1&Itemid=$2
[/url]
O seguinte é para IIRF IonicIsapiRewriter 1.x:
[url]IterationLimit 10[/url]
Observação: Se você estiver usando IIRF IonicIsapiRewriter Version 2.x você precisa ter um arquivo de configuração "global " no diretório onde a DLL é um arquivo e local específico ( ver Artio JoomSEF abaixo como exemplo ) no diretório root do Joomla. O nome de arquivo 2.x não é mais IsapiRewrite4.ini mas mudou para Iirf.ini (!)
Exemplo para IirGlobal.ini:
[url]RewriteEngine On
RewriteFilterPriority MEDIUM
StatusUrl /iirfStatus RemoteOk
# Turn NotifyLog off if you can to optimize speed. If you need to log the original URL turn it on.
NotifyLog Off
[/url]
Testado e funcionando com Artio JoomSEF:
[url]
cRewriteCond %{HTTP_URL} (/|\.html?|\.php|/[^.]*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php [U,L]
# only use the U of the [U,L] if you have turned "NotifyLog ON" specified in your IirGlobal.ini
MaxMatchCount 10
[/url]
Testado e funcionando com o SEF padrão do Joomla:
[url]
RewriteRule ^/$ /index.php
RewriteRule ^/content/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=$1&id=$2&Itemid=$3&limit=$4&limitstart=$5
RewriteRule ^/content/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=$1&id=$2&Itemid=$3
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5&$6=$7
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/ /index.php?option=$1&$2=$3
[/url]
Testado e funcionando com o sh404SEF:
[url]
RewriteLogLevel 4 #Make it 0 in to turn debugging off
RewriteLog c:\IIRfLogfile.log #Write the absolute path of your file here
MaxMatchCount 10
# don't rewrite any request that goes to administrator
RewriteRule ^/administrator - [L]
RewriteCond %{HTTP_URL} (/|\.html?|\.php|!administrator|/[^.]*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php [U,L]
[/url]
Outras extensões de SEO deve funcionar uma vez que seguirem as regras de rewrite. Estou rodando o IonicIsapiRewriter - 1.2.12b betas em meu servidore de produção sem maiores problemas. Por favor, siga as instruções de instalação dos fornecedores para obter o filtro ISAPI para se trabalhar em seu servidor IIS.
Fonte: http://bit.ly/grOqCt
No II6um uma extensão de terceiros deve ser usado. A extensão Helicon, que fornece um suporte diretamente as regras .htaccess.
IIS 7 URL Rewriting
Se você tem um servidor com o IIS 7 e PHP, você pode tirar proveito da própria URL rewrite do IIS usando um arquivo web.config semelhante ao abaixo:
Você pode criar o arquivo manualmente ou usando a GUI (interface gráfica) do IIS Manager.
Você pode importar. regras htaccess usando o assistente .
GUI
Se o IIS URL Rewrite module estiver instalado, seu website manager terá uma ferramenta chamada "URL Rewrite", visível na exibição do IIS Manager's (Gerenciador do IIS) os módulos configuráveis do ??seus sites no IIS. A interface é praticamente auto- explicativo.
Expressões regulares, wildcards, ou exact matches são suportados.
web.config
Isso já foi testado com Joomla 1.5 com o IIS 7 no Windows Server 2008 sem problemas até agora. Para obter mais informações sobre a conversão. htaccess para web.config, veja:http://learn.iis.net/page.aspx/557/translate-htaccess-content-to-iis-webconfig/
[url]
<?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="(\<|%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&view=article&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>
</system.webServer>
</configuration>
[/url]
Helicon ISAPI Rewrite
Helicon ISAPI Rewrite 3 é encontrado em: http://www.isapirewrite.com/ ou http://cheeso.members.winisp.net/IIRF.aspx
agora fornecendo funcionalidade quase idêntica do mod_rewrite.
IIS 7 tem o seu próprio módulo rewrite (URL Rewrite ), que é excelentes e não necessita de aplicativos de terceiros. Ele pode ser ativado por meio do Web Platform Installer. Nas configurações do Joomla é precisa habilitar: o SEF (Urls Amigáveis) e Apache mod_rewrite, em seguida, crie uma regra em IIS URL Rewrite: Pattern field: ^([^/]+)/?$ Ignore case ON Action type: Rewrite Rewrite URL: index.php/
Por padrão, as regras do rewrite dever utilizadas com seguinte código inserido no topo do arquivo index.php:
[url]
if (isset($_SERVER))
{
$_SERVER = $_SERVER;
}
[/url]
Primeiro é preciso instalar o ISAPI rewriter de sua escolha: http://www.isapirewrite.com/ ou http://cheeso.members.winisp.net/IIRF.aspx
ISAPI ReWrite possui uma versão free (limitada) e o IIRF (IonicIsapiRewriter) é freeware sempre atualizado, e é grátis!
Ambos precisão ser configurados os arquivos IsapiRewrite4.ini (você não precisa se ??preocupar com o htaccess.txt, é so ignorá -lo) e ( se você estiver usando IIRF IonicIsapiRewriter 2.x veja abaixo para uma mudança de nome de arquivo):
As entradas a seguir para ISAPI REWRITE:
[url]
RewriteLog D:\temp\iirfLog.out
RewriteLogLevel 3
IterationLimit 10
# Joomla/Mambo rewrite rules
RewriteRule ^/$ /index.php
RewriteRule ^/content/blogsection/([^/]+)/([^/]+)/ /index.php?option=com_content&task=blogsection&id=$1&Itemid=$2
RewriteRule ^/content/blogcategory/([^/]+)/([^/]+)/ /index.php?option=com_content&task=blogcategory&id=$1&Itemid=$2
RewriteRule ^/content/section/([^/]+)/([^/]+)/ /index.php?option=com_content&task=section&id=$1&Itemid=$2
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5&$6=$7
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/ /index.php?option=$1&$2=$3
RewriteRule ^/content/category/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=category§ionid=$1=&id=$2&Itemid=$3
RewriteRule ^/content/view/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=view&id=$1&Itemid=$2&limit=$3&limitstart=$4
RewriteRule ^/content/view/([^/]+)/([^/]+)/ /index.php?option=com_content&task=view&id=$1&Itemid=$2
[/url]
O seguinte é para IIRF IonicIsapiRewriter 1.x:
[url]IterationLimit 10[/url]
Observação: Se você estiver usando IIRF IonicIsapiRewriter Version 2.x você precisa ter um arquivo de configuração "global " no diretório onde a DLL é um arquivo e local específico ( ver Artio JoomSEF abaixo como exemplo ) no diretório root do Joomla. O nome de arquivo 2.x não é mais IsapiRewrite4.ini mas mudou para Iirf.ini (!)
Exemplo para IirGlobal.ini:
[url]RewriteEngine On
RewriteFilterPriority MEDIUM
StatusUrl /iirfStatus RemoteOk
# Turn NotifyLog off if you can to optimize speed. If you need to log the original URL turn it on.
NotifyLog Off
[/url]
Testado e funcionando com Artio JoomSEF:
[url]
cRewriteCond %{HTTP_URL} (/|\.html?|\.php|/[^.]*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php [U,L]
# only use the U of the [U,L] if you have turned "NotifyLog ON" specified in your IirGlobal.ini
MaxMatchCount 10
[/url]
Testado e funcionando com o SEF padrão do Joomla:
[url]
RewriteRule ^/$ /index.php
RewriteRule ^/content/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=$1&id=$2&Itemid=$3&limit=$4&limitstart=$5
RewriteRule ^/content/([^/]+)/([^/]+)/([^/]+)/ /index.php?option=com_content&task=$1&id=$2&Itemid=$3
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+)/([^/]+),([^/]+) /index.php?option=$1&$2=$3&$4=$5&$6=$7
RewriteRule ^/component/option,([^/]+)/([^/]+),([^/]+)/ /index.php?option=$1&$2=$3
[/url]
Testado e funcionando com o sh404SEF:
[url]
RewriteLogLevel 4 #Make it 0 in to turn debugging off
RewriteLog c:\IIRfLogfile.log #Write the absolute path of your file here
MaxMatchCount 10
# don't rewrite any request that goes to administrator
RewriteRule ^/administrator - [L]
RewriteCond %{HTTP_URL} (/|\.html?|\.php|!administrator|/[^.]*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php [U,L]
[/url]
Outras extensões de SEO deve funcionar uma vez que seguirem as regras de rewrite. Estou rodando o IonicIsapiRewriter - 1.2.12b betas em meu servidore de produção sem maiores problemas. Por favor, siga as instruções de instalação dos fornecedores para obter o filtro ISAPI para se trabalhar em seu servidor IIS.
Fonte: http://bit.ly/grOqCt
Rafael Santana
Web Designer | R&L Design - Desenvolvimento Gráfico e Sites
Please Entrar ou Registrar to join the conversation.
- Sandro L R Fonseca
-
- Offline
- JCB! Novato
-
Menos
Mais
- Postagens: 2
- Obrigados Recebidos: 0
14 anos 6 meses atrás #47284
por Sandro L R Fonseca
Sandro L R Fonseca replied the topic: Re: [Tutorial] Urls Amigáveis no Windows Server (IIS 6,7)
Tentei amigo, mas sou bem mais iniciante
naum consegui chegar ao resultado
onde devo instalar o programa?
deu este erro
HTTP Error 500.19 - Internal Server Error
naum consegui chegar ao resultado
onde devo instalar o programa?
deu este erro
HTTP Error 500.19 - Internal Server Error
Please Entrar ou Registrar to join the conversation.