Qual é a melhor maneira de forçar HTTPS e WWW, mas permitir localhost?

Qual é a melhor maneira de forçar HTTPS e WWW, mas permitir localhost? [Português]

HTACCESS força HTTPS e WWW, mas permite localhost

É importante forçar HTTPS e WWW por vários motivos: ganhe a confiança de seus visitantes, mostrando que a conexão é segura e, se você estiver usando um subdomínio como www, mantendo a consistência com seus visitantes e seus relatórios, em seu site barato hospedagem por exemplo.

Pode facilmente tornar-se complicado nos mecanismos de relatório, como o Google Search Console, para ter visualizações diferentes para o mesmo site e páginas. Um com conexão HTTPS segura, um sem e um com subdomínio da Web www e outro sem, e até se tornar um pesadelo, levando você a configurar um filtro de subdomínio do Google Analytics para gerar relatórios consistentes.

Na verdade, existem algumas maneiras fáceis de garantir que todos os visitantes sejam redirecionados para a versão HTTPS do site e do subdomínio HTACCESS force HTTPS, sem afetar as visitas, e também podem ser usados ​​para redirecionar sites para outros sites com este simples e método elegante.

Além disso, e para completá-lo, verifique se o subdomínio host local pode ser acessado sem o subdomínio da Web ou o redirecionamento para HTTPS, e se as páginas que terminam em barra serão redirecionadas para a página normal, a fim de evitar contagem dupla das mesmas páginas nos relatórios.

Vamos nos livrar de todas essas páginas duplicadas, o que dificulta ao final agregar as análises adequadamente:

  • http://mywebsite.com/page

  • http://mywebsite.com/page/

  • https://mywebsite.com/page

  • https://mywebsite.com/page/

  • http://www.mywebsite.com/page

  • http://www.mywebsite.com/page/

  • https://www.mywebsite.com/page

  • https://www.mywebsite.com/page/

  • Tudo isso será feito com a atualização do arquivo .htaccess, que é um arquivo oculto usado nos servidores Apache, geralmente armazenado na pasta raiz do site.

Redirecionar página que termina com barra

Para remover a barra final do URL que termina com um deles e ter as solicitações redirecionadas para a página padrão sem a barra, basta corresponder os URLs iniciando e terminando com uma barra, verifique se não é um diretório solicitado e redirecione para todo o URI da solicitação sem a barra final.

Além disso, redirecione a página para o URL seguro da Web que deve estar correto - isso resolverá diretamente todos os seus problemas em potencial, incluindo barra invertida, solicitação não segura ou subdomínio não da Web.

Também precisamos de um trecho de código adicional para garantir que qualquer solicitação para um diretório termine com uma barra, pois os URLs normais dos diretórios de sites acabarão com um deles.

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]
# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

HTACCESS força HTTPS e força WWW htaccess

Agora que o problema da barra final foi resolvido, vamos nos concentrar no HTTPS ausente ou no subdomínio da Web ausente que pode acontecer, com um htaccess redirecionar http para https com https www com força.

A maneira mais fácil e elegante de fazer isso acontecer é ter os dois identificados exatamente na mesma condição htaccess.

Isso é feito facilmente combinando URLs que não começam com o subdomínio da Web ou qualquer solicitação que não inclua o HTTPS e redirecionando a URL correta do nosso site, que inclui a conexão segura e o subdomínio da Web www.

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Forçar HTTPS e WWW, mas permitir localhost

Agora, está tudo bem, mas o que acontece quando realmente tentamos acessar nosso site no modo de desenvolvimento no servidor local XAMPP, mas todos os nossos pedidos para http: // localhost agora são redirecionados para https://www.mysite.com - nossa versão de produção?

Bem, a solução é reutilizar o trecho de código anterior que aplica a versão HTTPS e WWW da solicitação de URL, mas inicie-o excluindo as solicitações de verificação que são endereçadas ao host local ou ao nosso endereço IP local, que é 127.0.0.1.

E é isso, agora temos um belo pedaço de código que resolverá todos os nossos problemas!

# HTACCESS force HTTPS and force WWW htaccess 
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Redirecione HTTP para HTTPS htaccess, force WWW e remova a barra final

Todo o código abaixo pode ser usado no arquivo HTACCESS para obter o seguinte:

Redirecione HTTP para HTTPS em htacces,

Forçar a WWW no htaccess,

Remova a barra final no URL.

Obviamente, não se esqueça de alterar o URL do site que se aplica a você.

Pode até ser usado para redirecionar um site para outro site, simplesmente alterando os URLs de destino para seu outro melhor site de hospedagem barata:

#--------------------------------------------------
# Force WWW htaccess : /
#--------------------------------------------------
#### Force HTTPS://WWW and remove trailing / from files ####
## Turn on rewrite engine
RewriteEngine on

# Remove trailing slash from non-filepath urls
RewriteCond %{REQUEST_URI} /(.+)/$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ https://www.mywebsite.com/%1 [R=301,L]

# Include trailing slash on directory
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ https://www.mywebsite.com/$1/ [R=301,L]

# HTACCESS force HTTPS and force WWW htaccess
RewriteCond %{HTTP_HOST} !^localhost [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [OR,NC]
RewriteCond %{https} off
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R=301,L]

Artigos semelhantes


Comentários (0)

Deixe um comentário

Aumente a receita publicitária de 50 a 250% com a Ezoic. Um parceiro de publicação certificado do Google.
Aumente a receita publicitária de 50 a 250% com a Ezoic. Um parceiro de publicação certificado do Google.
 
Aumente a receita publicitária de 50 a 250% com a Ezoic. Um parceiro de publicação certificado do Google.
Aumente a receita publicitária de 50 a 250% com a Ezoic. Um parceiro de publicação certificado do Google.