Arquivo da tag: apache

Os 3 servidores web mais populares do mundo

Para se hospedar um site, é necessário um servidor web. Abaixo segue uma breve descrição sobre os 3 mais utilizados servidores web no mundo todo:

Apache: é o servidor web mais utilizado no mundo, hospeda na Internet mais de 360 milhões de sites. O Apache suporta uma variedade de recursos, muitos deles implementados como módulos para extender sua funcionalidade, entre eles o mod_access, responsável por delimitar o acesso a diretóriso e arquivos, com authenticação onde necessário e o mod_rewrite, que premite a reescrita de URLs, recurso introduzido no Apache. Alguma das linguagens de programação suportadas são Perl, PyThon, Tcl e PHP. O Apache se tornou tão popular que a maioria dos sistemas open-source o requerem para funcionar, tamanha a facilidade de uso e recursos integrados.

IIS (Internet Information Server): é o servidor web da Microsoft. Apesar de possui apenas 16% do mercado, hospedando pouco mais de 110 milhões de sites no mundo todo, o IIS suporta os protocolos HTTP, HTTPS, FTP, FTPS, SMTP e NNTP. Ele é parte integrante do Windows Server, apesar de não habilitado por padrão em uma instalação padrão do Windows. Entre suas principais características, está a integração com as tecnologias criadas pela Microsoft, tais como o Framework .NET, utilizado em páginas ASP.NET, com suporte a VB.NET, C# e multas outras linguagens.

nginx: apesar de ocupar o terceiro lugar em utilização, o nginx é o servidor web que mais cresce em utilização nos últimos anos. Ele também pode ser utilizado como um proxy reverso para HTTP, SMTP, POP3 e IMAP, e possui um foco em performance e escalabilidade. O nginx é responsável por hospedar mais de 100 milhões de sites no mundo.

 

Criando urls amigáveis com o mod_rewrite

Criando urls amigáveis com o mod_rewrite do Apache

Vamos aprender como criar URLs amigáveis, indexáveis e que resumam, de alguma forma, o recurso que elas descrevem.

Introdução

É comum vermos URLs do tipo:

index.php?section=artigos&data=09-08-2004

ou

index.php?s=web&p=1

ou piores que isso, como:

/cgi-bin/index.cgi?id=7288731803928617293&page=6

Os exemplos acima são fictícios mas, com certeza você já se deparou com URLs bem parecidas com essas, inclusive em sites muito conhecidos.

Qual o problema dessas URLs?

A princípio você pode pensar que não há problema algum com essas URLs. Mas pense um segundo. Você consegue decorar uma URL desse tipo?

Não seria muito melhor que fosse algo do tipo:

www.site.com/artigos/09/08/2004

ou

www.site.com/web/1

Além do problema da complexidade, essas URLs geram outros problemas:

  • Alguns mecanismos de busca podem deixar de indexar estas páginas, por causa dos caracteres ‘?’ e ‘&’
  • A tecnologia usada na construção do site está sendo exposta
  • Se você resolver mudar a tecnologia do seu site (php para asp, por exemplo), todas as URLs terão que ser mudadas

Expor a tecnologia usada para fazer um site pode ser um problema de segurança e, hoje em dia, qualquer cuidado com segurança, mesmo que pequeno, é importante.

E, além disso, com a mudança da tecnologia usada, todos os links e bookmarks que existam para o seu site serão quebrados, e isso não é nem um pouco interessante.

O que fazer então?

A solução que vou apresentar serve para os usuários do servidor web apache.

É necessário que esteja habilitado no servidor o módulo mod_rewrite e que seja possível o uso de arquivos htaccess.

A solução é simples: mapear as URLs reais para URLs “virtuais”, mais fáceis de compreender e indexar, e independentes da tecnologia utilizada.

É necessário um pouco de conhecimento de expressões regulares.

O que é o mod_rewrite

mod_rewrite é um módulo do apache que realiza a reescrita transparente de URLs usando expressões regulares.

É como se fosse um redirecionamento, só que o usuário não fica sabendo que a página foi reescrita, já que o endereço na barra de endereços do browser não muda e nenhum cabeçalho HTTP 3xx é enviado.

Mãos a obra

O primeiro passo é criar um arquivo htaccess no diretório raiz do seu site (DocumentRoot e acrescentar a linha:

RewriteEngine On

Esta linha habilita o uso do mod_rewrite no seu site.

Agora vamos ? reescrita da URL. Vamos utilizar os exemplos acima. São exemplos simples, mas meu intuito é mostrar o funcionamento da técnica. Você pode usar a sua criatividade para fazer o que quiser e o que for necessário para o seu caso.

Primeiro exemplo: index.php?s=web&p=1

Analisando esta URL podemos perceber que temos duas variáveis (’s’ e ‘p’), provavelmente referentes a seção e página, respectivamente.

Vamos transformá-la em: /web/1

A regra ficaria assim:

RewriteRule ^(.+)/?([0-9]*)/?$ /index.php?s=$1&p=$2

Vamos entender a linha acima:

RewriteRule: define o início de uma regra de reescrita.

^(.+)/?([0-9]*)/?$: a url “virtual”, ou seja, a url que será usada nos links para esta página. Para que entende um pouco de expressões regulares, esta expressão é bem simples de entender, vamos dissecá-la:

(.+): significa um ou mais caracteres (.). O significado dos parêntesis vai ser explicado mais adiante.

/?: zero ou uma barra (/). A contrabarra () serve para “escapar” o caractere /, informando que ele deve ser interpretado literalmente, e não como um metacaractere.

([0-9])*: qualquer quantidade de dígitos (números), ou seja, zero ou mais.

/index.php?s=$1&p=$2: esta é a URL real, ou seja, a url que vai estar sendo acessada por meio do mod_rewrite.

As expressões ‘$1′ e ‘$2′ significam o primeiro e segundo conjunto de caracteres agrupados por parênteses na expressão da esquerda. Ou seja, é guardada uma referência para esses grupos de caracteres para que você possa usá-los.

Exemplos do resultado desta regra:

/web/1 ou /web/1/ = /index.php?s=web&p=1
/outrasecao/5 ou /outrasecao/5/ = /index.php?s=outrasecao&p=5
/web ou /web/ = index.php?s=web&p=

Vamos a mais um exemplo:

RewriteRule ^artigos/?([0-9]+)/([0-9]+)/([0-9]+)/?$ index.php?section=artigos&data=$1-$2-$3

(Perceba que a linha pode estar quebrada para caber no espaço, mas trata-se de uma linha só, sem quebras).

Assim, você poderia acessar a URL index.php?section=artigos&data=09-08-2004 pela URL “virtual” artigos/09/08/2004, bem mais amigável do que a primeira.

Não apenas páginas dinâmicas podem ser reescritas por meio do mod_rewrite. Conteúdo estático também.

Um exemplo:

www.site.com/noticias/09-08-2004.html

poderia ser reescrita para

www.site.com/noticias/09/08/2004

Usando a regra:

RewriteRule ^noticias/?([0-9]+)/([0-9]+)/([0-9]+)/?$ /noticias/$1-$2-$3

Resumo

Você pode fazer praticamente qualquer mapeamento de URLs utilizando o mod_rewrite, o que você precisa é identificar um padrão nas URLs do seu site e criar as regras de reescrita.  

 

 
Fonte: plugmasters.com.br
Por: Bruno Torres