From a7fcf7d6b0e7e565fadba6300b07d61a9b1e3897 Mon Sep 17 00:00:00 2001 From: "Rafael A. Mello" Date: Thu, 27 Aug 2020 11:41:53 -0300 Subject: [PATCH 1/2] Translation: [PT-BR] Update and general restructuring of the document. --- Translations/Portuguese-BR/README.md | 1459 +++++++++++++++++++++----- 1 file changed, 1211 insertions(+), 248 deletions(-) diff --git a/Translations/Portuguese-BR/README.md b/Translations/Portuguese-BR/README.md index 996e3b0..2164d9d 100644 --- a/Translations/Portuguese-BR/README.md +++ b/Translations/Portuguese-BR/README.md @@ -1,321 +1,1194 @@ -# .htaccess Snippets -Uma coleção de snippets .htaccess úteis, tudo em um só lugar. - -**Disclaimer**: ao deixar cair o trecho em um arquivo `.htaccess` é a maior parte do tempo suficiente, há casos em que algumas modificações podem ser necessárias. Use por sua conta e risco. - -**IMPORTANTE**: Apache 2.4 introduz algumas alterações significativas, principalmente na configuração de controle de acesso. Para mais informações, consulte o [upgrading document](https://httpd.apache.org/docs/2.4/upgrading.html) bem como [this issue](https://github.com/phanan/htaccess/issues/2). +# Trechos de Códigos .htaccess   [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) + +[Français](#) + •  +[Deutsche](#) + •  +[Italiano](#) + •  +[日本人](#) + •  +[Português Brasileiro](#) + •  +[Pусский](#) + •  +[Cлова:](#) + +Uma coleção de trechos de códigos úteis para arquivos `.htaccess`, todos em um só lugar. + +**Nota:** Os arquivos `.htaccess` são úteis para as pessoas que não possuem direitos ou a permissão adequada +para editar o arquivo principal de configuração do servidor. Esses arquivos são intrinsecamente mais lentos e +complicados do que o arquivo principal de configuração. Consulte a [documentação oficial do Apache](#) para +obter mais detalhes. + +**Importante:** O `Apache 2.4` apresenta algumas mudanças importantes, principalmente na configuração de +controle de acesso. Para obter mais informações, acesse o [documento de atualização](#) e esta [issue](#). + +**Isenção de responsabilidade:** Embora copiar e colar trechos de códigos em um arquivo `.htaccess` seja na +maioria das vezes o suficiente, há casos em que certas modificações sejam necessárias. Use por sua conta e +risco. ## Créditos -O que estamos fazendo aqui é principalmente a coleta trechos úteis de todo o interwebs (por exemplo, uma boa parte é de -[Apache Server Configs](https://github.com/h5bp/server-configs-apache)) em um só lugar. Enquanto estamos tentando dar crédito onde, devido, as coisas podem estar em falta. Se você acreditar em qualquer coisa que está aqui deve ser dado o seu trabalho e créditos, avise-nos, ou apenas enviar uma PR. - -## Tabela de Conteúdo -- [Rewrite and Redirection](#rewrite-and-redirection) - - [Force www](#force-www) - - [Force www in a Generic Way](#force-www-in-a-generic-way) - - [Force non-www](#force-non-www) - - [Force non-www in a Generic Way](#force-non-www-in-a-generic-way) - - [Force HTTPS](#force-https) - - [Force HTTPS Behind a Proxy](#force-https-behind-a-proxy) - - [Force Trailing Slash](#force-trailing-slash) - - [Remove Trailing Slash](#remove-trailing-slash) - - [Redirect a Single Page](#redirect-a-single-page) - - [Alias a Single Directory](#alias-a-single-directory) - - [Alias Paths to Script](#alias-paths-to-script) - - [Redirect an Entire Site](#redirect-an-entire-site) - - [Alias "Clean" URLs](#alias-clean-urls) -- [Security](#security) - - [Deny All Access](#deny-all-access) - - [Deny All Access Except Yours](#deny-all-access-except-yours) - - [Allow All Access Except Spammers'](#allow-all-access-except-spammers) - - [Deny Access to Hidden Files and Directories](#deny-access-to-hidden-files-and-directories) - - [Deny Access to Backup and Source Files](#deny-access-to-backup-and-source-files) - - [Disable Directory Browsing](#disable-directory-browsing) - - [Disable Image Hotlinking](#disable-image-hotlinking) - - [Disable Image Hotlinking for Specific Domains](#disable-image-hotlinking-for-specific-domains) - - [Password Protect a Directory](#password-protect-a-directory) - - [Password Protect a File or Several Files](#password-protect-a-file-or-several-files) - - [Block Visitors by Referrer](#block-visitors-by-referrer) - - [Prevent Framing the Site](#prevent-framing-the-site) -- [Performance](#performance) - - [Compress Text Files](#compress-text-files) - - [Set Expires Headers](#set-expires-headers) - - [Turn eTags Off](#turn-etags-off) -- [Miscellaneous](#miscellaneous) - - [Set PHP Variables](#set-php-variables) - - [Custom Error Pages](#custom-error-pages) - - [Force Downloading](#force-downloading) - - [Prevent Downloading](#prevent-downloading) - - [Allow Cross-Domain Fonts](#allow-cross-domain-fonts) - - [Auto UTF-8 Encode](#auto-utf-8-encode) - - [Switch to Another PHP Version](#switch-to-another-php-version) - - [Disable Internet Explorer Compatibility View](#disable-internet-explorer-compatibility-view) - - [Serve WebP Images](#serve-webp-images) - -## Rewrite and Redirection -Nota: Presume-se que você tem `mod_rewrite` instalado e habilitado. - -### Force www -``` apacheconf +O que fazemos aqui é percorrer a internet atrás de trechos de códigos úteis e reunir todos em um só lugar. +Embora tentamos dar o devido crédito, pode ser que alguns trechos de códigos não tenham o devido crédito, além +disso estamos falando da `internet`. Se você acredita que algum desses trechos de códigos seja de sua autoria +e deseja ter o devido crédito, nos envie uma [pull request](#). + +## Índice + +- [Reescrever e redirecionar](#reescrever-e-redirecionar) + + - [Forçar `www` na url](#forçar-www-na-url) + - [Forçar `www` na url de maneira genérica](#forçar-www-na-url-de-maneira-genérica) + - [Forçar a remoção do `www` da url](#forçar-a-remoção-do-www-da-url) + - [Forçar a remoção do `www` da url de maneira genérica](#forçar-a-remoção-do-www-da-url-de-maneira-genérica) + - [Forçar o uso de `HTTPS`](#forçar-o-uso-de-https) + - [Forçar o uso de `HTTPS` por trás de um `proxy`](#forçar-o-uso-de-https-por-trás-de-um-proxy) + - [Forçar `\` no final da url](#forçar--no-final-da-url) + - [Remover `\` no final da url](#remover--no-final-da-url) + - [Redirecionar uma única página](#redirecionar-uma-única-página) + - [Redirecionar utilizando a directiva `RedirectMatch`](#redirecionar-utilizando-a-directiva-redirectmatch) + - [Alias para redirecionar de um diretório para outro com a directiva `RewriteRule`](#alias-para-redirecionar-de-um-diretório-para-outro-com-a-directiva-rewriterule) + - [Alias para redirecionar todas as solicitações de um diretório para um único arquivo](#alias-para-redirecionar-todas-as-solicitações-de-um-diretório-para-um-único-arquivo) + - [Redirecionar um site inteiro](#redirecionar-um-site-inteiro) + - [Limpar a `url` de extensões `PHP`](#limpar-a-url-de-extensões-php) + - [Excluir uma `url` de um redirecionamento](#excluir-uma-url-de-um-redirecionamento) + +- [Segurança](#segurança) + + - [Negar acesso total](#negar-acesso-total) + - [Negar acesso total, exceto o seu `ip`](#negar-acesso-total-exceto-o-seu-ip) + - [Permitir acesso total, exceto `spammers`](#permitir-acesso-total-exceto-spammers) + - [Negar acesso a arquivos e diretórios ocultos](#negar-acesso-a-arquivos-e-diretórios-ocultos) + - [Negar acesso a arquivos de backup e de origem](#negar-acesso-a-arquivos-de-backup-e-de-origem) + - [Desativar a navegação de um diretório](#desativar-a-navegação-de-um-diretório) + - [Desativar links de imagens](#desativar-links-de-imagens) + - [Desativar links de imagens de domínios específicos](#desativar-links-de-imagens-de-domínios-específicos) + - [Proteger um diretório com senha](#proteger-um-diretório-com-senha) + - [Proteger um ou vários arquivos com senha](#proteger-um-ou-vários-arquivos-com-senha) + - [Bloquear visitantes de sites referenciadores específicos](#bloquear-visitantes-de-sites-referenciadores-específicos) + - [Impedir o enquadramento de um site](#impedir-o-enquadramento-de-um-site) + +- [Desempenho](#desempenho) + + - [Compactar arquivos de texto](#compactar-arquivos-de-texto) + - [Definir cabeçalhos de expiração](#definir-cabeçalhos-de-expiração) + - [Desligar o `HTTP ETag`: Mecanismo de validação condicional de cache](#desligar-o-http-etag-mecanismo-de-validação-condicional-de-cache) + +- [Diversos](#diversos) + + - [Definir variáveis `PHP`](#definir-variáveis-php) + - [Páginas de erro personalizadas](#páginas-de-erro-personalizadas) + - [Forçar `download` de arquivos](#forçar-download-de-arquivos) + - [Impedir `download` para visualização de arquivos](#impedir-download-para-visualização-de-arquivos) + - [Permitir `webfonts` de todos os domínios](#permitir-webfonts-de-todos-os-domínios) + - [Definir o tipo de codificação automaticamente em arquivos específicos](#definir-o-tipo-de-codificação-automaticamente-em-arquivos-específicos) + - [Mudar a versão do `PHP` para uma aplicação ou tarefa específica](#mudar-a-versão-do-php-para-uma-aplicação-ou-tarefa-específica) + - [Desativar o modo de exibição de compatibilidade do Internet Explorer](#desativar-o-modo-de-exibição-de-compatibilidade-do-internet-explorer) + - [Permitir a exibição/veiculação de imagens `.webp`](#permitir-a-exibiçãoveiculação-de-imagens-webp) + +## Reescrever e redirecionar + +**Nota:** Presume-se que você tenha os módulos de reescrita `mod_rewrite` e alias `mod_alias` instalados e +ativos no seu servidor. + +### Forçar `www` na url + +**Fonte:** [Stack Overflow](https://stackoverflow.com/q/4916222) + +Esse trecho de código funciona em qualquer domínio. + +```apacheconf +# Ativa o motor de reescrita RewriteEngine on + +# Condição necessária para reescrita RewriteCond %{HTTP_HOST} ^example\.com [NC] -RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC] + +# Regra para reescrita da url +RewriteRule ^(.*)$ http://www.example.com/$1 [L, R=301, NC] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condição necessária para reescrita + RewriteCond %{HTTP_HOST} ^example\.com [NC] + + # Regra para reescrita da url + RewriteRule ^(.*)$ http://www.example.com/$1 [L, R=301, NC] + ``` -### Force www in a Generic Way -``` apacheconf +[Próximo código](#forçar-www-na-url-de-maneira-genérica)  •  [Voltar ao índice](#índice) + +--- + +### Forçar `www` na url de maneira genérica + +**Fonte:** [Stack Overflow](https://stackoverflow.com/a/4958847) + +Esse trecho de código funciona em qualquer domínio. + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Condições necessárias para reescrita RewriteCond %{HTTP_HOST} !^$ RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTPS}s ^on(s)| -RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] + +# Regra para reescrita da url +RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301, L] ``` -Isso funciona para _any_ domain. [Source](https://stackoverflow.com/questions/4916222/htaccess-how-to-force-www-in-a-generic-way) -### Force non-www -It's [still](http://www.sitepoint.com/domain-www-or-no-www/) [open](https://devcenter.heroku.com/articles/apex-domains) [for](http://yes-www.org/) [debate](http://no-www.org/) se www ou non-www é o caminho a percorrer, por isso, se acontecer de você ser um fã de domínios descalços, aqui você vai: -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condições necessárias para reescrita + RewriteCond %{HTTP_HOST} !^$ + RewriteCond %{HTTP_HOST} !^www\. [NC] + RewriteCond %{HTTPS}s ^on(s)| + + # Regra para reescrita da url + RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301, L] + +``` + +[Próximo código](#forçar-a-remoção-do-www-da-url)  •  [Voltar ao índice](#índice) + +--- + +### Forçar a remoção do `www` da url + +**Fonte:** Desconhecida + +Esse assunto ainda está aberto para [debates](https://www.sitepoint.com/domain-www-or-no-www/), se o melhor +caminho é utilizar o [`www`](http://yes-www.org) ou remover o [`www`](http://no-www.org/) da `url`. Caso você +tenha uma preferência em domínios... como podemos dizer... `descalços` ou `desfragmentados`, esse trecho de +código é pra você. + +```apacheconf +# Ativa o motor de reescrita RewriteEngine on + +# Condição necessária para reescrita RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] -RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] + +# Regra para reescrita da url +RewriteRule ^(.*)$ http://example.com/$1 [L, R=301] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condição necessária para reescrita + RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] + + # Regra para reescrita da url + RewriteRule ^(.*)$ http://example.com/$1 [L, R=301] + ``` -### Force non-www in a Generic Way -``` apacheconf +[Próximo código](#forçar-a-remoção-do-www-da-url-de-maneira-genérica)  •  [Voltar ao índice](#índice) + +--- + +### Forçar a remoção do `www` da url de maneira genérica + +**Fonte:** Desconhecida + +```apacheconf +# Ativa o motor de reescrita RewriteEngine on + +# Condições necessárias para reescrita RewriteCond %{HTTP_HOST} ^www\. RewriteCond %{HTTPS}s ^on(s)|off RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$ -RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L] + +# Regra para reescrita da url +RewriteRule ^ %1%3%{REQUEST_URI} [R=301, L] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condições necessárias para reescrita + RewriteCond %{HTTP_HOST} ^www\. + RewriteCond %{HTTPS}s ^on(s)|off + RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$ + + # Regra para reescrita da url + RewriteRule ^ %1%3%{REQUEST_URI} [R=301, L] + ``` -### Force HTTPS -``` apacheconf +[Próximo código](#forçar-o-uso-de-https)  •  [Voltar ao índice](#índice) + +--- + +### Forçar o uso de `HTTPS` + +**Fonte:** Desconhecida + +**Importante:** É recomendado habilitar o `HTTP Strict Transport Security (HSTS)` em seu site juntamente com +`HTTPS` para ajudar a previnir ataques `man in the middle`. Consulte [Developer Mozilla](https://mzl.la/2QlMgAg) +para mais informações. + +```apacheconf +# Ativa o motor de reescrita RewriteEngine on + +# Condição necessária para reescrita RewriteCond %{HTTPS} !on + +# Regra para reescrita da url RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} -# Nota: Também é recomendável habilitar HTTP Strict Transport Segurança (HSTS) -# Em seu site HTTPS para ajudar a prevenir ataques man-in-the-middle. -# Veja https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security +# Habilita o HTTP Strict Transport Security (HSTS) +# Remova 'includeSubDomains' se não quiser aplicar HSTS em todos os subdomínios +Header always set Strict-Transport-Security "max-age=31536000;includeSubDomains" +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condição necessária para reescrita + RewriteCond %{HTTPS} !on + + # Regra para reescrita da url + RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} + + +# Verifica se o módulo está instalado - Header sempre definido Strict-Transport-Security "max-age=31536000; includeSubDomains" + + # Habilita o HTTP Strict Transport Security (HSTS) + # Remova 'includeSubDomains' se não quiser aplicar HSTS em todos os subdomínios + Header always set Strict-Transport-Security "max-age=31536000;includeSubDomains" ``` -### Force HTTPS Behind a Proxy -Útil se você tiver um proxy na frente do seu servidor a realização de terminação TLS. -``` apacheconf +[Próximo código](#forçar-o-uso-de-https-por-trás-de-um-proxy)  •  [Voltar ao índice](#índice) + +--- + +### Forçar o uso de `HTTPS` por trás de um `proxy` + +**Fonte:** Desconhecida + +**Importante:** Esse código é útil se você estiver utilizando um proxy que esteja executando uma terminação +`TLS`. + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Condição necessária para reescrita RewriteCond %{HTTP:X-Forwarded-Proto} !https + +# Regra para reescrita da url RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} ``` -### Force Trailing Slash -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condição necessária para reescrita + RewriteCond %{HTTP:X-Forwarded-Proto} !https + + # Regra para reescrita da url + RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} + +``` + +[Próximo código](#forçar--no-final-da-url)  •  [Voltar ao índice](#índice) + +--- + +### Forçar `\` no final da url + +**Fonte:** Desconhecida + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Condição necessária para reescrita RewriteCond %{REQUEST_URI} /+[^\.]+$ -RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] + +# Regra para reescrita da url +RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301, L] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condição necessária para reescrita + RewriteCond %{REQUEST_URI} /+[^\.]+$ + + # Regra para reescrita da url + RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301, L] + ``` -### Remove Trailing Slash -``` apacheconf +[Próximo código](#remover--no-final-da-url)  •  [Voltar ao índice](#índice) + +--- + +### Remover `\` no final da url + +**Fonte:** [Stack Overflow](https://stackoverflow.com/a/27264788) + +**Importante:** Esse código redireciona dos caminhos que terminam com `\` para as suas contrapartes sem `\` +(exceto para diretórios reais), por exemplo, de `http://example.com/blog/` para `http://example.com/blog`. +Isso é importante para [`SEO`](https://bit.ly/2EvlDWW), pois é recomendável ter uma +[`url` canônica](https://bit.ly/34KjSQX) em cada página. + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Condições necessárias para reescrita RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule ^(.*)/$ /$1 [R=301,L] +RewriteCond %{REQUEST_URI} (.+)/$ + +# Regra para reescrita da url +RewriteRule ^ %1 [R=301, L] ``` -### Redirect a Single Page -``` apacheconf + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condições necessárias para reescrita + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + + # Regra para reescrita da url + RewriteRule ^ %1 [R=301, L] + +``` + +[Próximo código](#redirecionar-uma-única-página)  •  [Voltar ao índice](#índice) + +--- + +### Redirecionar uma única página + +**Fonte:** [CSS Tricks](https://bit.ly/31ssjOF) + +```apacheconf +# Condições necessárias para redirecionar Redirect 301 /oldpage.html http://www.example.com/newpage.html Redirect 301 /oldpage2.html http://www.example.com/folder/ ``` -[Source](http://css-tricks.com/snippets/htaccess/301-redirects/) -### Alias a Single Directory -``` apacheconf -RewriteEngine On -RewriteRule ^source-directory/(.*) target-directory/$1 +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Condições necessárias para redirecionar + Redirect 301 /oldpage.html http://www.example.com/newpage.html + Redirect 301 /oldpage2.html http://www.example.com/folder/ + +``` + +[Próximo código](#redirecionar-utilizando-a-directiva-redirectmatch)  •  [Voltar ao índice](#índice) + +--- + +### Redirecionar utilizando a directiva `RedirectMatch` + +**Fonte:** [Ask Apache](https://bit.ly/3gAeH8s) + +```apacheconf +# Condições necessárias para redirecionar +RedirectMatch 301 /subdirectory(.*) http://www.newsite.com/newfolder/$1 +RedirectMatch 301 ^/(.*).htm$ /$1.html +RedirectMatch 301 ^/200([0-9])/([^01])(.*)$ /$2$3 +RedirectMatch 301 ^/category/(.*)$ /$1 +RedirectMatch 301 ^/(.*)/htaccesselite-ultimate-htaccess-article.html(.*) /htaccess/htaccess.html +RedirectMatch 301 ^/(.*).html/1/(.*) /$1.html$2 +RedirectMatch 301 ^/manual/(.*)$ http://www.php.net/manual/$1 +RedirectMatch 301 ^/dreamweaver/(.*)$ /tools/$1 +RedirectMatch 301 ^/z/(.*)$ http://static.askapache.com/$1 ``` -### Alias Paths to Script -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Condições necessárias para redirecionar + RedirectMatch 301 /subdirectory(.*) http://www.newsite.com/newfolder/$1 + RedirectMatch 301 ^/(.*).htm$ /$1.html + RedirectMatch 301 ^/200([0-9])/([^01])(.*)$ /$2$3 + RedirectMatch 301 ^/category/(.*)$ /$1 + RedirectMatch 301 ^/(.*)/htaccesselite-ultimate-htaccess-article.html(.*) /htaccess/htaccess.html + RedirectMatch 301 ^/(.*).html/1/(.*) /$1.html$2 + RedirectMatch 301 ^/manual/(.*)$ http://www.php.net/manual/$1 + RedirectMatch 301 ^/dreamweaver/(.*)$ /tools/$1 + RedirectMatch 301 ^/z/(.*)$ http://static.askapache.com/$1 + +``` + +[Próximo código](#alias-para-redirecionar-de-um-diretório-para-outro-com-a-directiva-rewriterule)  •  [Voltar ao índice](#índice) + +--- + +### Alias para redirecionar de um diretório para outro com a directiva `RewriteRule` + +**Fonte:** Desconhecida + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Regra para reescrita da url +RewriteRule ^source-directory/(.*) /target-directory/$1 [R=301,L] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Regra para reescrita da url + RewriteRule ^source-directory/(.*) /target-directory/$1 [R=301,L] + +``` + +[Próximo código](#alias-para-redirecionar-todas-as-solicitações-de-um-diretório-para-um-único-arquivo)  •  [Voltar ao índice](#índice) + +--- + +### Alias para redirecionar todas as solicitações de um diretório para um único arquivo + +**Fonte:** Desconhecida + +Este código tem como exemplo um arquivo `index.fcgi`, onde este arquivo recebe todas as solicitações de um diretório, mesmo +que falhem, são enviadas novamente para o arquivo `index.fcgi`. É bom se você deseja que `baz.foo/some/cool/path` seja tratado +como `baz.foo/index.fcgi`. + +```bash FallbackResource /index.fcgi ``` -Este exemplo tem um arquivo `index.fcgi` em algum diretório, e todos os pedidos dentro desse diretório que não conseguem resolver um diretório / nome do arquivo será enviado para o` script index.fcgi`. É bom se você quer `baz.foo / some / cool / path` a ser feitos pelo` baz.foo / index.fcgi` (que também suporta pedidos de `baz.foo`), mantendo` baz.foo/css/ style.css` e semelhantes. Tenha acesso ao caminho original da variável de ambiente PATH_INFO, como exposto no seu ambiente de script. -``` apacheconf -RewriteEngine On +Esta é uma versão menos eficiente da diretiva `FallbackResource` (porque usar `mod_rewrite` é mais complexo do que apenas manipular a directiva `FallbackResource`), mas também é mais flexível. + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Regra para reescrita da url RewriteRule ^$ index.fcgi/ [QSA,L] + +# Condições necessárias para reescrita RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L] + +# Regra para reescrita da url +RewriteRule ^$ index.fcgi/ [QSA,L] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Regra para reescrita da url + RewriteRule ^$ index.fcgi/ [QSA,L] + + # Condições necessárias para reescrita + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + + # Regra para reescrita da url + RewriteRule ^$ index.fcgi/ [QSA,L] + ``` -Esta é uma versão menos eficiente da directiva FallbackResource (porque o uso do `mod_rewrite` é mais complexa do que apenas lidar com o` directiva FallbackResource`), mas também é mais flexível. -### Redirect an Entire Site -``` apacheconf +[Próximo código](#redirecionar-um-site-inteiro)  •  [Voltar ao índice](#índice) + +--- + +### Redirecionar um site inteiro + +**Fonte:** [CSS Tricks](https://bit.ly/31w6zkI) + +Esse código é útil se você estiver 'movendo' um site para um novo domínio, pois ele mantém todos os links intactos, por exemplo, +`www.oldsite.com/some/crazy/link.html` automaticamente se torna `www.newsite.com/some/crazy/link.html`. + +```apacheconf +# Condição necessária para redirecionar Redirect 301 / http://newsite.com/ ``` -Desta forma, faz com links intactos. Ou seja `www.oldsite.com/some/crazy/link.html` se tornará `www.newsite.com/some/crazy/link.html`. Isto é extremamente útil quando você é apenas "moving" um site para um novo domínio. [Source](http://css-tricks.com/snippets/htaccess/301-redirects/) -### Alias "Clean" URLs -Este trecho permite que você use "clean" URLs -- aqueles sem uma extensão do PHP, por exemplo `example.com/users` em vez de `example.com/users.php`. -``` apacheconf -RewriteEngine On +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Condição necessária para redirecionar + Redirect 301 / http://newsite.com/ + +``` + +[Próximo código](#limpar-a-url-de-extensões-php)  •  [Voltar ao índice](#índice) + +--- + +### Limpar a `url` de extensões `PHP` + +**Fonte:** [A Beautiful Site](https://bit.ly/3hwl4e9) + +Esse código permite que você utilize `urls` mais limpas, por exemplo, em vez de `http://example.com/user.php` usamos `http://example.com/users`. + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Condição necessária para reescrita RewriteCond %{SCRIPT_FILENAME} !-d -RewriteRule ^([^.]+)$ $1.php [NC,L] + +# Regra para reescrita da url +RewriteRule ^([^.]+)$ $1.php [NC, L] ``` -[Source](http://www.abeautifulsite.net/access-pages-without-the-php-extension-using-htaccess/) -## Security -### Deny All Access -``` apacheconf -## Apache 2.2 +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condição necessária para reescrita + RewriteCond %{SCRIPT_FILENAME} !-d + + # Regra para reescrita da url + RewriteRule ^([^.]+)$ $1.php [NC, L] + +``` + +[Próximo código](#excluir-uma-url-de-um-redirecionamento)  •  [Voltar ao índice](#índice) + +--- + +### Excluir uma `url` de um redirecionamento + +**Fonte:** Desconhecida + +Este código permite que você exclua uma `url` de um redirecionamento. Por exemplo, se você tiver regras de redirecionamento pré-configuradas, mas deseja excluir o arquivo `robots.txt` do redirecionamento para que os mecanismos de pesquisa possam acessar esse arquivo conforme o esperado. Utilize: + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Regra para reescrita da url +RewriteRule ^robots.txt - [L] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Regra para reescrita da url + RewriteRule ^robots.txt - [L] + +``` + +[Próxima seção](#segurança)  •  [Voltar ao índice](#índice) + +--- + +## Segurança + +**Nota:** O controle de acesso pode ser feito por vários módulos diferentes. Os mais importantes são `mod_authz_core` e `mod_authz_host`. Para mais informações consulte a seção de [controle de acesso](https://bit.ly/32q61fz) na documentação do Apache. + +### Negar acesso total + +**Fonte:** Desconhecida + +Esse código também não vai permitir que você acesso o conteúdo. O próximo trecho de código pode ser mais útil. + +```apacheconf +# Apache 2.2 Deny from all -## Apache 2.4 -# Require all denied +# Apache 2.4 +Require all denied ``` -Mas espere, isso irá bloqueá-lo a partir do seu conteúdo, bem! Assim, a introdução de ... +**Você também pode tentar:** + +```apacheconf +# Diretório a ser protegido + + + # Apache 2.2 + Deny from all + + # Apache 2.4 + Require all denied + +``` + +[Próximo código](#negar-acesso-total-exceto-o-seu-ip)  •  [Voltar ao índice](#índice) + +--- + +### Negar acesso total, exceto o seu `ip` -### Deny All Access Except Yours -``` apacheconf -## Apache 2.2 -Order deny,allow +**Fonte:** [Specky Boy](https://bit.ly/2QrCahk) + +O campo `xxx.xxx.xxx.xxx` é onde você vai colocar o seu `ip`. Se você substituir os últimos três dígitos por, `0/12` por exemplo, isso especificará um intervalo de `ips` na mesma rede, evitando assim o trabalho de listar todos os `ips` permitidos separadamente. + +```apacheconf +# Apache 2.2 +Order deny, allow Deny from all Allow from xxx.xxx.xxx.xxx -## Apache 2.4 -# Require all denied -# Require ip xxx.xxx.xxx.xxx +# Apache 2.4 +Require all denied +Require ip xxx.xxx.xxx.xxx +``` + +**Você também pode tentar:** + +```apacheconf +# Diretório a ser protegido + + + # Apache 2.2 + Order deny, allow + Deny from all + Allow from xxx.xxx.xxx.xxx + + # Apache 2.4 + Require all denied + Require ip xxx.xxx.xxx.xxx + ``` -`xxx.xxx.xxx.xxx` é seu IP. Se você substituir os três últimos dígitos com 0/12 por exemplo, isso vai especificar um intervalo de IPs dentro da mesma rede, poupando-lhe o trabalho de listar todos os IPs autorizados separadamente. [Source](http://speckyboy.com/2013/01/08/useful-htaccess-snippets-and-hacks/) -Agora é claro que há uma versão invertida: +[Próximo código](#permitir-acesso-total-exceto-spammers)  •  [Voltar ao índice](#índice) -### Allow All Access Except Spammers' -``` apacheconf -## Apache 2.2 -Order deny,allow +--- + +### Permitir acesso total, exceto `spammers` + +**Fonte:** Desconhecida + +```apacheconf +# Apache 2.2 +Order deny, allow Deny from xxx.xxx.xxx.xxx Deny from xxx.xxx.xxx.xxy -## Apache 2.4 -# Require all granted -# Require not ip xxx.xxx.xxx.xxx -# Require not ip xxx.xxx.xxx.xxy +# Apache 2.4 +Require all granted +Require not ip xxx.xxx.xxx.xxx +Require not ip xxx.xxx.xxx.xxx ``` -### Deny Access to Hidden Files and Directories -Arquivos e diretórios ocultos (aqueles cujos nomes começam com um ponto `.`) deve maioria, se não todos, o tempo ser assegurado. por exemplo: `.htaccess`, `.htpasswd`, `.git`, `.hg`... -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Diretório a ser protegido + + + # Apache 2.2 + Order deny, allow + Deny from xxx.xxx.xxx.xxx + Deny from xxx.xxx.xxx.xxy + + # Apache 2.4 + Require all granted + Require not ip xxx.xxx.xxx.xxx + Require not ip xxx.xxx.xxx.xxx + +``` + +[Próximo código](#negar-acesso-a-arquivos-e-diretórios-ocultos)  •  [Voltar ao índice](#índice) + +--- + +### Negar acesso a arquivos e diretórios ocultos + +**Fonte:** Desconhecida + +Arquivos e diretórios ocultos (são aqueles cujo nomes começam com um ponto `.`) devem ser protegidos na maior parte, senão em todo o tempo. Por exemplo: `.htaccess, .htpasswd, .git, .hg`. + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Condições necessárias para reescrita RewriteCond %{SCRIPT_FILENAME} -d [OR] RewriteCond %{SCRIPT_FILENAME} -f + +# Regra para reescrita da url RewriteRule "(^|/)\." - [F] ``` -Alternativamente, você pode simplesmente levantar uma `Not Found` erro, dando a cara atacante nenhuma pista: -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condições necessárias para reescrita + RewriteCond %{SCRIPT_FILENAME} -d [OR] + RewriteCond %{SCRIPT_FILENAME} -f + + # Regra para reescrita da url + RewriteRule "(^|/)\." - [F] + +``` + +Uma alternativa mais segura: + +```apacheconf RedirectMatch 404 /\..*$ ``` -### Deny Access to Backup and Source Files -Esses arquivos podem ser deixados por alguns editores de texto / html (como Vi / Vim) e representam um grande perigo de segurança, se exposto a público. -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Condição para redirecionar + RedirectMatch 404 /\..*$ + +``` + +[Próximo código](#negar-acesso-a-arquivos-de-backup-e-de-origem)  •  [Voltar ao índice](#índice) + +--- + +### Negar acesso a arquivos de backup e de origem + +**Fonte:** [Github H5BP](https://bit.ly/2EAqkyH) + +Esses arquivos podem ser deixados por alguns editores de texto e representam um grande perigo de segurança se expostos publicamente. + +```apacheconf +# Verifica e executa a ação nos tipos de arquivos especificados - ## Apache 2.2 - Order allow,deny + + # Apache 2.2 + Order allow, deny Deny from all Satisfy All - ## Apache 2.4 - # Require all denied + # Apache 2.4 + Require all denied ``` -[Source](https://github.com/h5bp/server-configs-apache) -### Disable Directory Browsing -``` apacheconf +[Próximo código](#desativar-a-navegação-de-um-diretório)  •  [Voltar ao índice](#índice) + +--- + +### Desativar a navegação de um diretório + +**Fonte:** Desconhecida + +```apacheconf Options All -Indexes ``` -### Disable Image Hotlinking -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Diretório a ser protegido + + Options All -Indexes + +``` + +[Próximo código](#desativar-links-de-imagens)  •  [Voltar ao índice](#índice) + +--- + +### Desativar links de imagens + +**Fonte:** Desconhecida + +```apacheconf +# Ativa o motor de reescrita RewriteEngine on -# Remova a seguinte linha se você deseja bloquear referrer em branco também -RewriteCond %{HTTP_REFERER} !^$ +# Condições necessárias para reescrita +RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?example.com [NC] -RewriteRule \.(jpe?g|png|gif|bmp)$ - [NC,F,L] -# Se você deseja exibir um banner "bloqueada" em lugar da imagem hotlink, -# Substituir a regra acima, com: -# RewriteRule \.(jpe?g|png|gif|bmp) http://example.com/blocked.png [R,L] +# Regra para reescrita da url +RewriteRule \.(jpe?g|png|gif|bmp)$ - [NC, F, L] +``` + +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condições necessárias para reescrita + RewriteCond %{HTTP_REFERER} !^$ + RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?example.com [NC] + + # Regra para reescrita da url + RewriteRule \.(jpe?g|png|gif|bmp)$ - [NC, F, L] + ``` -### Disable Image Hotlinking for Specific Domains -Às vezes você quer desabilitar imagem hotlinking de alguns bandidos só. -``` apacheconf +Se você deseja exibir um banner com uma mensagem no lugar da imagem com hotlink, substitua a regra acima por: + +```apacheconf +RewriteRule \. (jpe? g | png | gif | bmp) http://example.com/blocked.png [R, L] +``` + +[Próximo código](#desativar-links-de-imagens-de-domínios-específicos)  •  [Voltar ao índice](#índice) + +--- + +### Desativar links de imagens de domínios específicos + +**Fonte:** Desconhecida + +Às vezes, você deseja desabilitar o hotlink de imagens apenas de alguns sites maliciosos. + +```apacheconf +# Ativa o motor de reescrita RewriteEngine on + +# Condições necessárias para reescrita RewriteCond %{HTTP_REFERER} ^https?://(.+\.)?badsite\.com [NC,OR] RewriteCond %{HTTP_REFERER} ^https?://(.+\.)?badsite2\.com [NC,OR] -RewriteRule \.(jpe?g|png|gif|bmp)$ - [NC,F,L] -# Se você deseja exibir um banner "bloqueada" em lugar da imagem hotlink, -# Substituir a regra acima, com: -# RewriteRule \.(jpe?g|png|gif|bmp) http://example.com/blocked.png [R,L] +# Regra para reescrita da url +RewriteRule \.(jpe?g|png|gif|bmp)$ - [NC, F, L] ``` -### Password Protect a Directory -Primeiro você precisa criar um arquivo `.htpasswd` em algum lugar do sistema: -``` bash -htpasswd -c /home/fellowship/.htpasswd boromir +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condições necessárias para reescrita + RewriteCond %{HTTP_REFERER} ^https?://(.+\.)?badsite\.com [NC,OR] + RewriteCond %{HTTP_REFERER} ^https?://(.+\.)?badsite2\.com [NC,OR] + + # Regra para reescrita da url + RewriteRule \.(jpe?g|png|gif|bmp)$ - [NC, F, L] + +``` + +Se você deseja exibir um banner com uma mensagem no lugar da imagem com hotlink, substitua a regra acima por: + +```apacheconf +RewriteRule \. (jpe? g | png | gif | bmp) http://example.com/blocked.png [R, L] +``` + +[Próximo código](#proteger-um-diretório-com-senha)  •  [Voltar ao índice](#índice) + +--- + +### Proteger um diretório com senha + +**Fonte:** Desconhecida + +Primeiramente é necessário criar o arquivo com nome `.htpasswd` em algum lugar do seu sistema operacional, de preferência na sua pasta de usuários. Em seguida rode o comando: + +**Linux:** + +```bash +htpasswd -c /home/john/.htpasswd johndoe ``` -Em seguida, você pode usá-lo para autenticação: -``` apacheconf +**Windows:** + +```bash +htpasswd -c c:/users/john/.htpasswd johndoe +``` + +Agora podemos partir para a autenticação: + +```apacheconf +# Tipo de autenticação AuthType Basic -AuthName "One does not simply" -AuthUserFile /home/fellowship/.htpasswd + +# Nome: opcional +AuthName "Diretório de imagens" + +# Linux: Caminho para o arquivo .htpasswd +AuthUserFile /home/john/.htpasswd + +# Windows: Caminho para o arquivo .htpasswd +AuthUserFile c:/users/john/.htpasswd + +# Directiva de validação Require valid-user ``` -### Password Protect a File or Several Files -``` apacheconf -AuthName "One still does not simply" +**Você também pode tentar:** + +```apacheconf +# Diretório a ser protegido + + + # Tipo de autenticação + AuthType Basic + + # Nome: opcional + AuthName "Diretório de imagens" + + # Linux: Caminho para o arquivo .htpasswd + AuthUserFile /home/john/.htpasswd + + # Windows: Caminho para o arquivo .htpasswd + AuthUserFile c:/users/john/.htpasswd + + # Directiva de validação + Require valid-user + +``` + +[Próximo código](#proteger-um-ou-vários-arquivos-com-senha)  •  [Voltar ao índice](#índice) + +--- + +### Proteger um ou vários arquivos com senha + +**Fonte:** Desconhecida + +Primeiramente é necessário criar o arquivo com nome `.htpasswd` em algum lugar do seu sistema operacional, de preferência na sua pasta de usuários. Em seguida rode o comando: + +**Linux:** + +```bash +htpasswd -c /home/john/.htpasswd johndoe +``` + +**Windows:** + +```bash +htpasswd -c c:/users/john/.htpasswd johndoe +``` + +Agora podemos partir para a autenticação: + +```apacheconf +# Tipo de autenticação AuthType Basic -AuthUserFile /home/fellowship/.htpasswd +# Nome: opcional +AuthName "Diretório de imagens" + +# Linux: Caminho para o arquivo .htpasswd +AuthUserFile /home/john/.htpasswd + +# Windows: Caminho para o arquivo .htpasswd +AuthUserFile c:/users/john/.htpasswd + +# Arquivo a ser protegido -Require valid-user + # Directiva de validação + Require valid-user +# Arquivos a serem protegidos -Require valid-user + # Directiva de validação + Require valid-user ``` -### Block Visitors by Referrer -Este nega o acesso para todos os usuários que estão vindo de (indicado por) um domínio específico. -[Source](http://www.htaccess-guide.com/deny-visitors-by-referrer/) -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Diretório a ser protegido + + + # Tipo de autenticação + AuthType Basic + + # Nome: opcional + AuthName "Diretório de imagens" + + # Linux: Caminho para o arquivo .htpasswd + AuthUserFile /home/john/.htpasswd + + # Windows: Caminho para o arquivo .htpasswd + AuthUserFile c:/users/john/.htpasswd + + +# Arquivo a ser protegido + + + # Directiva de validação + Require valid-user + + +# Arquivos a serem protegidos + + + # Directiva de validação + Require valid-user + +``` + +[Próximo código](#bloquear-visitantes-de-sites-referenciadores-específicos)  •  [Voltar ao índice](#índice) + +--- + +### Bloquear visitantes de sites referenciadores específicos + +**Fonte:** [Htaccess Guide](https://bit.ly/3jgCVGj) + +Isso nega o acesso a todos os usuários que vêm de (referidos por) um domínio específico. + +```apacheconf +# Ativa o motor de reescrita RewriteEngine on -# Options +FollowSymlinks + +# Condições necessárias para reescrita RewriteCond %{HTTP_REFERER} somedomain\.com [NC,OR] RewriteCond %{HTTP_REFERER} anotherdomain\.com + +# Regra para reescrita da url RewriteRule .* - [F] ``` -### Prevent Framing the Site -Isso impede que o site para ser enquadrado (ou seja, colocar em uma `iframe` tag), quando ainda permite o enquadramento para uma URI específica. -``` apacheconf +**Você também pode tentar:** + +```apacheconf +# Verifica se o módulo está instalado + + + # Ativa o motor de reescrita + RewriteEngine on + + # Condições necessárias para reescrita + RewriteCond %{HTTP_REFERER} somedomain\.com [NC,OR] + RewriteCond %{HTTP_REFERER} anotherdomain\.com + + # Regra para reescrita da url + RewriteRule .* - [F] + +``` + +[Próximo código](#impedir-o-enquadramento-de-um-site)  •  [Voltar ao índice](#índice) + +--- + +### Impedir o enquadramento de um site + +**Fonte:** Desconhecida + +Esse código previne que o seu site seja enquadrado, ou seja, utilizado em um `iframe`, podendo permitir para domínios específicos. + +```apacheconf SetEnvIf Request_URI "/starry-night" allow_framing=true Header set X-Frame-Options SAMEORIGIN env=!allow_framing ``` -## Performance -### Compress Text Files -``` apacheconf +[Próxima seção](#desempenho)  •  [Voltar ao índice](#índice) + +--- + +## Desempenho + +### Compactar arquivos de texto + +**Fonte:** [GitHub H5bp](https://bit.ly/34CLuqV) + +Esse código força a compressão para cabeçalhos mutilados e compacta todas as saídas rotuladas com os tipos de `MIME` (para versões do Apache abaixo de 2.3.7, você não precisa habilitar `mod_filter` e pode remover o `` e ``, `AddOutputFilterByType` ainda está nas diretivas principais). + +```apacheconf - # Force compression for mangled headers. + # Força a compressão para cabeçalhos mutilados. # https://developer.yahoo.com/blogs/ydn/pushing-beyond-gzipping-25601.html @@ -324,10 +1197,10 @@ Header set X-Frame-Options SAMEORIGIN env=!allow_framing - # Comprimir toda a saída marcada com um dos seguintes procedimentos MIME-types - # (para versões do Apache 2.3.7 abaixo, você não precisa habilitar `mod_filter` - # pode remover as linhas `` e `` - # como `AddOutputFilterByType` ainda está em diretivas principais). + # Compacta todas as saídas rotuladas com os tipos de `MIME` + # (para versões do Apache abaixo de 2.3.7, você não precisa habilitar `mod_filter` + # e pode remover o` ` e ``, `AddOutputFilterByType` + # ainda está nas diretivas principais). AddOutputFilterByType DEFLATE application/atom+xml \ application/javascript \ @@ -347,45 +1220,51 @@ Header set X-Frame-Options SAMEORIGIN env=!allow_framing text/x-component \ text/xml - ``` -[Source](https://github.com/h5bp/server-configs-apache) +[Próximo código](#definir-cabeçalhos-de-expiração)  •  [Voltar ao índice](#índice) -### Set Expires Headers -_Expira headers_ dizer ao navegador se eles devem solicitar um arquivo específico do servidor ou apenas agarrá-lo a partir do cache. É aconselhável definir um conteúdo estática que expira no futuro. -Se você não controlar o versionamento com cache baseado em filename, tem que considerar uma redução do tempo de cache para recursos como CSS e JS para algo como uma semana. [Source](https://github.com/h5bp/server-configs-apache) -``` apacheconf +--- + +### Definir cabeçalhos de expiração + +**Fonte:** [GitHub H5bp](https://bit.ly/34CLuqV) + +Os `cabeçalhos de expiração` informam ao navegador se ele deve solicitar um arquivo específico do servidor ou apenas obtê-lo do cache. É aconselhável definir os cabeçalhos de expiração do conteúdo estático para algo distante no futuro. + +Se você não controla o controle de versão com impedimento de cache baseado em nome de arquivo, considere reduzir o tempo de cache para recursos como `CSS` e `JS` para algo como 1 semana. + +```apacheconf ExpiresActive on ExpiresDefault "access plus 1 month" - # CSS + # Arquivos CSS ExpiresByType text/css "access plus 1 year" - # Data interchange + # Intercâmbio de dados ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds" - # Favicon (cannot be renamed!) + # Favicons (Não pode ser renomeado) ExpiresByType image/x-icon "access plus 1 week" - # HTML components (HTCs) + # Components HTML (HTCs) ExpiresByType text/x-component "access plus 1 month" - # HTML + # Arquivos HTML ExpiresByType text/html "access plus 0 seconds" - # JavaScript + # Arquivos javascript ExpiresByType application/javascript "access plus 1 year" - # Manifest files + # Arquivos manifest ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" ExpiresByType text/cache-manifest "access plus 0 seconds" - # Media + # Arquivos de mídia ExpiresByType audio/ogg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" @@ -394,11 +1273,11 @@ Se você não controlar o versionamento com cache baseado em filename, tem que c ExpiresByType video/ogg "access plus 1 month" ExpiresByType video/webm "access plus 1 month" - # Web feeds + # Feeds da web ExpiresByType application/atom+xml "access plus 1 hour" ExpiresByType application/rss+xml "access plus 1 hour" - # Web fonts + # Fontes da web ExpiresByType application/font-woff2 "access plus 1 month" ExpiresByType application/font-woff "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" @@ -408,101 +1287,185 @@ Se você não controlar o versionamento com cache baseado em filename, tem que c ``` -### Turn eTags Off -Ao remover o cabeçalho `ETag`, você desativar caches e navegadores de ser capaz de validar os arquivos, então eles são forçados a confiar em seu` Cache-Control` e `cabeçalho Expires`. [Source](http://www.askapache.com/htaccess/apache-speed-etags.html) -``` apacheconf +[Próximo código](#desligar-o-http-etag-mecanismo-de-validação-condicional-de-cache)  •  [Voltar ao índice](#índice) + +--- + +### Desligar o `HTTP ETag`: Mecanismo de validação condicional de cache + +**Fonte:** [Ask Apache](https://bit.ly/3bdtp4d) + +Ao remover o cabeçalho `ETag`, você desabilita caches e navegadores de validar arquivos, então eles são forçados a confiar em seu cabeçalho `Cache-Control` e `Expires`. + +```apacheconf Header unset ETag + FileETag None ``` -## Miscellaneous +[Próxima seção](#diversos)  •  [Voltar ao índice](#índice) + +--- + +## Diversos -### Set PHP Variables -``` apacheconf +### Definir variáveis `PHP` + +**Fonte:** Desconhecida + +```apacheconf php_value +``` -# Por exemplo: +**Exemplo:** + +```apacheconf php_value upload_max_filesize 50M php_value max_execution_time 240 ``` -### Custom Error Pages -``` apacheconf -ErrorDocument 500 "Houston, você tem um problema." +[Próximo código](#páginas-de-erro-personalizadas)  •  [Voltar ao índice](#índice) + +--- + +### Páginas de erro personalizadas + +**Fonte:** Desconhecida + +```apacheconf +ErrorDocument 500 "Houston, nós temos um problema." ErrorDocument 401 http://error.example.com/mordor.html ErrorDocument 404 /errors/halflife3.html ``` -### Force Downloading -Às vezes você quer forçar o navegador para baixar algum conteúdo em vez de exibi-lo. -``` apacheconf +[Próximo código](#forçar-download-de-arquivos)  •  [Voltar ao índice](#índice) + +--- + +### Forçar `download` de arquivos + +**Fonte:** Desconhecida + +Às vezes, você deseja forçar o navegador a baixar algum conteúdo em vez de exibi-lo. + +```apacheconf ForceType application/octet-stream Header set Content-Disposition attachment ``` -Agora a um yang a este yin: +[Próximo código](#impedir-download-para-visualização-de-arquivos)  •  [Voltar ao índice](#índice) -### Prevent Downloading -Às vezes você quer forçar o navegador para exibir algum conteúdo em vez de baixá-lo. -``` apacheconf +--- + +### Impedir `download` para visualização de arquivos + +**Fonte:** Desconhecida + +Às vezes, você deseja forçar o navegador a exibir algum conteúdo em vez de baixá-lo. + +```apacheconf Header set Content-Type text/plain ``` -### Allow Cross-Domain Fonts -CDN-served webfonts pode não funcionar no Firefox ou IE devido à [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing). Este trecho resolve o problema. -``` apacheconf +[Próximo código](#permitir-webfonts-de-todos-os-domínios)  •  [Voltar ao índice](#índice) + +--- + +### Permitir `webfonts` de todos os domínios + +**Fonte:** [GitHub H5bp](https://bit.ly/3jkSKvA) + +`Webfonts` servidos por CDN podem não funcionar no `Firefox` ou `IE` devido ao [`CORS`](https://bit.ly/3llvvDv) . Este trecho resolve o problema. + +```apacheconf Header set Access-Control-Allow-Origin "*" ``` -[Source](https://github.com/h5bp/server-configs-apache/issues/32) -### Auto UTF-8 Encode -Seu texto deve ser sempre codificação UTF-8, não? -``` apacheconf -# Use codificação UTF-8 para qualquer coisa como text/plain ou text/html +[Próximo código](#definir-o-tipo-de-codificação-automaticamente-em-arquivos-específicos)  •  [Voltar ao índice](#índice) + +--- + +### Definir o tipo de codificação automaticamente em arquivos específicos + +**Fonte:** [GitHub H5bp](https://bit.ly/34CLuqV) + +`Webfonts` servidos por CDN podem não funcionar no `Firefox` ou `IE` devido ao [`CORS`](https://bit.ly/3llvvDv) . Este trecho resolve o problema. + +```apacheconf +Use a codificação UTF-8 para qualquer coisa veiculada em text/plain ou text/html AddDefaultCharset utf-8 -# Força UTF-8 para um número de formatos de arquivo +# Força UTF-8 para vários tipos de arquivos AddCharset utf-8 .atom .css .js .json .rss .vtt .xml ``` -[Source](https://github.com/h5bp/server-configs-apache) -### Switch to Another PHP Version -Se você estiver em um servidor compartilhado, as chances são de que há mais de uma versão do PHP instalado, e às vezes você quer uma versão específica para o seu site. por exemplo, [Laravel](https://github.com/laravel/laravel) requer PHP >= 5.4. O seguinte trecho deve mudar a versão do PHP para você. +[Próximo código](#mudar-a-versão-do-php-para-uma-aplicação-ou-tarefa-específica)  •  [Voltar ao índice](#índice) + +--- + +### Mudar a versão do `PHP` para uma aplicação ou tarefa específica + +**Fonte:** Desconhecida + +Se você estiver em um host compartilhado, é provável que haja mais de uma versão do `PHP` instalada e, às vezes, você deseja uma versão específica para o seu site. O seguinte código deve mudar a versão do `PHP` para você. + +```apacheconf +AddHandler application/x-httpd-php56 .php +``` -``` apacheconf -AddHandler application/x-httpd-php55 .php +**Uma alternativa:** -# Alternativamente, você pode usar AddType -AddType application/x-httpd-php55 .php +```apacheconf +AddType application/x-httpd-php56 .php ``` -### Disable Internet Explorer Compatibility View -Exibição de Compatibilidade no IE pode afetar a forma como alguns sites são exibidos. O seguinte trecho deve forçar o IE para usar o Edge Rendering Engine e desativar o Compatibility View. +[Próximo código](#desativar-o-modo-de-exibição-de-compatibilidade-do-internet-explorer)  •  [Voltar ao índice](#índice) + +--- + +### Desativar o modo de exibição de compatibilidade do Internet Explorer + +**Fonte:** Desconhecida -``` apacheconf +Exibição de compatibilidade no `IE` pode afetar a forma como alguns sites são exibidos. O código a seguir deve forçar o `IE` a usar o `Edge Rendering Engine` e desabilitar o modo de exibição de compatibilidade. + +```apacheconf BrowserMatch MSIE is-msie Header set X-UA-Compatible IE=edge env=is-msie ``` -### Serve WebP Images -Se [WebP images](https://developers.google.com/speed/webp/?csw=1) são suportados em uma imagem com uma extensão .webp e ela encontra-se no mesmo lugar como o jpg/png imagem que vai ser servida, em seguida, a imagem WebP é servido em vez do jpg/png. +[Próximo código](#permitir-a-exibiçãoveiculação-de-imagens-webp)  •  [Voltar ao índice](#índice) + +--- + +### Permitir a exibição/veiculação de imagens `.webp` -``` apacheconf -RewriteEngine On +**Fonte:** [GitHub Vincentor Back](https://bit.ly/3b0NlXL) + +Se imagens [`webp`](https://bit.ly/3lk4yAl) forem suportadas e uma imagem com extensão `.webp` e o mesmo nome for encontrada no mesmo local que a uma imagem `jpg/png` que será exibida, a imagem `webp` será exibida no lugar. + +```apacheconf +# Ativa o motor de reescrita +RewriteEngine on + +# Condições necessárias para reescrita RewriteCond %{HTTP_ACCEPT} image/webp RewriteCond %{DOCUMENT_ROOT}/$1.webp -f + +# Regra para reescrita da url RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1] ``` -[Source](https://github.com/vincentorback/WebP-images-with-htaccess) + +[Voltar ao índice](#índice) From 412b50ebeb0cd61feaaf3bd93d6e4d375d2e7b3f Mon Sep 17 00:00:00 2001 From: "Rafael A. Mello" Date: Thu, 27 Aug 2020 12:12:23 -0300 Subject: [PATCH 2/2] Translation: [PT-BR] Add links for redirect to more translations. --- Translations/Portuguese-BR/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Translations/Portuguese-BR/README.md b/Translations/Portuguese-BR/README.md index 2164d9d..77043df 100644 --- a/Translations/Portuguese-BR/README.md +++ b/Translations/Portuguese-BR/README.md @@ -1,18 +1,18 @@ # Trechos de Códigos .htaccess   [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) -[Français](#) +[Français](https://github.com/phanan/htaccess/tree/master/Translations/French)  •  -[Deutsche](#) +[Deutsche](https://github.com/phanan/htaccess/tree/master/Translations/German)  •  -[Italiano](#) +[Italiano](https://github.com/phanan/htaccess/tree/master/Translations/Italian)  •  -[日本人](#) +[日本人](https://github.com/phanan/htaccess/tree/master/Translations/Japanese)  •  -[Português Brasileiro](#) +[Português Brasileiro](https://github.com/phanan/htaccess/tree/master/Translations/Portuguese-BR)  •  -[Pусский](#) +[Pусский](https://github.com/phanan/htaccess/tree/master/Translations/Russian)  •  -[Cлова:](#) +[Cлова:](https://github.com/phanan/htaccess/tree/master/Translations/Slovak) Uma coleção de trechos de códigos úteis para arquivos `.htaccess`, todos em um só lugar.