Ir para o conteúdo principal

Com ou sem www

·430 palavras·3 minutos
Vitor Pinho
Autor
Vitor Pinho
O informático de casa
Índice

Por acaso já te aconteceu, quando escreves um domínio (muitos websites de bancos cá têm esse problema) sem o www no início, a página falha? Porquê? Falta uma regra de reecaminhamento para o endereço correcto, o que pode acabar com muitos problemas de acesso a um website. É algo muito simples de fazer (mas deixe para um administrador de sistemas).

Mas primeiro…

Porquê usar www?
#

Alguns websites excluem o uso do www, preferindo apenas o nome do domínio (ex: meuwebsite.com). Embora não está errado, mais tarde isto pode causar problemas.

Se por alguma razão, o registo do website for ou alterar para CNAME, os registos MX deixarão de funcionar correctamente, pois entram em conflito. Dai a adopção do subdomínio www como porta de entrada para um website. Dessa maneira, não afectará os restantes registos (excepto se também forem criados registos no sub-domino www que causem conflito, pelo que não é recomendável**).**

Como automatizar
#

Existem plataformas de gestão web que facilitam esse trabalho, mas o que vamos exemplificar aqui é feito pelo ficheiro de configuração. Primeiro, é importante ter-se um registo A no domínio a apontar para o servidor e um registo A ou CNAME (dependendo da configuração) com o registo www apontando igualmente para o mesmo sítio.

O exemplo abaixo não só reencaminhará o meuwebiste.comwww.meuwebsite.com , como também reencaminhará para uma ligação segura http://meuwebsite.comhttps://www.meuwebsite.com.

Apache (.htaccess)
#

Apache
# Forçar https
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on

RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
# RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[\w-]+$
# RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# </IfModule>

# Forçar 'www.'
<IfModule mod_rewrite.c>
 RewriteEngine On

 RewriteCond %{HTTPS} =on
 RewriteRule ^ - [E=PROTO:https]
 RewriteCond %{HTTPS} !=on
 RewriteRule ^ - [E=PROTO:http]

 RewriteCond %{HTTP_HOST} !^www\. [NC]
 RewriteCond %{SERVER_ADDR} !=127.0.0.1
 RewriteCond %{SERVER_ADDR} !=::1
 RewriteRule ^ %{ENV:PROTO}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

IIS (web.config)
#

XML
<rule name="https" stopProcessing="true">
 <match url=".*$" />
  <conditions logicalGrouping="MatchAll">
   <add input="{HTTPS}" pattern="^OFF$" />
   <add input="{HTTP_HOST}" pattern="dev" negate="true" />
  </conditions>
  <action type="Redirect" url="https://www.meuwebiste.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>

<rule name="www" stopProcessing="true">
 <match url=".*$" />
  <conditions logicalGrouping="MatchAll">
   <add input="{HTTP_HOST}" pattern="www" negate="true" />
   <add input="{HTTP_HOST}" pattern="dev" negate="true" />
  </conditions>
  <action type="Redirect" url="https://www.meuwebiste.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>

Nginx (nginx.conf)
#

Nginx
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name www.meuwebsite.com;

    ...
}

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name meuwebsite.com;

    return 301 https://www.$server_name$request_uri;
}
Nota: Para Nginx e IIS, não esqueças de substituir meuwebiste.com pelo domínio do teu website. Como não tenho experiência em Nginx, apenas publico que me foi repassado. Em caso de problemas, não esqueças de comentar abaixo.

Relacionados

Velozes e sem maneiras
Com o surgimento de cada vez mais websites de comércio electrónico em Angola, cresce também a necessidade de melhor desempenho, sendo que com mais escolhas, o tempo cliente esperar que o website carregue, diminui (em média, se o interesse do utilizador não é capturado num período de 15 segundos, ele abandona o website). Embora as soluções Open Source como o Apache e MySQL pareçam ideais inicialmente, existem outras alternativas para websites dispostos a sofrer picos de tráfego, e honestamente, bem melhores.
Um IIS para todos governar
·310 palavras·2 minutos
Para qualquer empresa, ter um website é essencial, mas gerir vários, quando se tem a ideia de que cada website deve ter o seu servidor, é certamente um desperdício de recursos, por vezes desnecessário. Dai uma das opções é ter múltiplos websites em um único servidor. Muitos websites usam um sistema operativo baseado em Linux, mas o meu objectivo é criar uma solução fácil de disponibilizar, gerir e suportar para pessoal que não mexe em Linux no dia-a-dia.
Bloquear o mundo e deixar Angola entrar
·104 palavras·1 minuto
Aqui vai uma pergunta: se quiseres bloquear um país específico de aceder a serviços como é que fazes? Resposta: filtras por país, óbvio. E se o dispositivo não suportar filtragem por país, como um router ou um servidor Apache, por exemplo? Aí filtras por IP. E quais são os IPs de um determinado país? É aí que entra este site. Ele permite criar listas de acesso (ACL) em diferentes formatos, já preenchidos com os IPs dum determinado país ou até mesmo continente.