25 Truques Úteis de ‘htaccess’ do Apache para Segurar e Personalizar Sites

Os sites são partes importantes de nossas vidas. Eles servem como meio de expandir negócios, compartilhar conhecimento e muito mais. Anteriormente restritos a fornecer apenas conteúdo estático, com a introdução de linguagens de script dinâmicas do lado do cliente e do servidor e o avanço contínuo de linguagens estáticas existentes como html para html5, é possível adicionar dinamicidade a todos os aspectos dos sites e o que resta é esperado seguir em breve no futuro próximo.

Com os sites, surge a necessidade de uma unidade que possa exibir esses sites para um grande conjunto de público em todo o mundo. Essa necessidade é atendida pelos servidores que fornecem meios para hospedar um site. Isso inclui uma lista de servidores como: Apache HTTP Server, Joomla e WordPress que permitem hospedar seus sites.

25 htaccess Tricks

Quem deseja hospedar um site pode criar um servidor local próprio ou entrar em contato com qualquer um dos servidores mencionados acima ou qualquer outro administrador de servidor para hospedar seu site. Mas a questão real começa a partir deste ponto. O desempenho de um site depende principalmente dos seguintes fatores:

  1. Largura de banda consumida pelo site.
  2. Quão seguro é o site contra hackers.
  3. Otimismo quando se trata de busca de dados através do banco de dados
  4. Facilidade de uso ao exibir menus de navegação e fornecer mais recursos de IU.

Além disso, vários fatores que regem o sucesso dos servidores na hospedagem de sites são:

  1. Quantidade de compressão de dados alcançada para um site específico.
  2. Capacidade de atender simultaneamente vários clientes que solicitam o mesmo site ou sites diferentes.
  3. Assegurar os dados confidenciais inseridos nos sites, tais como: emails, detalhes de cartão de crédito, e assim por diante.
  4. Permitir cada vez mais opções para melhorar a dinâmica de um site.

Este artigo trata de uma funcionalidade fornecida pelos servidores que ajuda a melhorar o desempenho dos sites, ao mesmo tempo que os protege de bots maliciosos, hotlinks, etc., ou seja, o arquivo ‘.htaccess‘.

O que é .htaccess?

htaccess (ou hypertext access) são arquivos que fornecem opções para os proprietários de sites controlarem as variáveis do ambiente do servidor e outros parâmetros para melhorar a funcionalidade de seus sites. Esses arquivos podem residir em qualquer diretório na árvore de diretórios do site e fornecem recursos para o diretório, arquivos e pastas dentro dele.

Quais são esses recursos? Bem, são as diretivas do servidor, ou seja, as linhas que instruem o servidor a realizar uma tarefa específica, e essas diretivas se aplicam apenas aos arquivos e pastas dentro do diretório em que este arquivo está localizado. Por padrão, esses arquivos estão ocultos, pois todos os sistemas operacionais e servidores web são configurados para ignorá-los, mas tornar os arquivos ocultos visíveis permite que você veja este arquivo muito especial. O tipo de parâmetros que podem ser controlados é o tema de discussão das seções subsequentes.

Nota: Se o arquivo .htaccess for colocado no diretório /apache/home/www/Gunjit/ então ele fornecerá diretivas para todos os arquivos e pastas nesse diretório, mas se este diretório contiver outra pasta chamada: /Gunjit/images/ que novamente possui outro arquivo .htaccess então as diretivas nesta pasta substituirão aquelas fornecidas pelo arquivo mestre .htaccess (ou arquivo na pasta acima na hierarquia).

Servidor Apache e arquivos .htaccess

Apache HTTP Server chamado coloquialmente de Apache foi nomeado em homenagem à tribo nativa americana Apache para respeitar suas habilidades superiores em estratégia de guerra. Construído em C/C++ e XML, é um servidor web multiplataforma que é baseado no servidor NCSA HTTPd e desempenha um papel fundamental no crescimento e avanço da World Wide Web.

Mais comumente utilizado em UNIX, o Apache está disponível para uma ampla variedade de plataformas, incluindo FreeBSD, Linux, Windows, Mac OS, Novel Netware, etc. Em 2009, o Apache tornou-se o primeiro servidor a atender a mais de 100 milhões de sites.

O servidor Apache possui um arquivo .htaccess por usuário no diretório www/. Embora esses arquivos sejam ocultos, eles podem ser tornados visíveis se necessário. No diretório www/ existem várias pastas, cada uma referente a um site nomeado com o nome do usuário ou proprietário. Além disso, você pode ter um arquivo .htaccess em cada pasta que configure os arquivos nessa pasta conforme indicado acima.

Como configurar o arquivo htaccess no servidor Apache é como segue…

Configuração no Servidor Apache

Pode haver dois casos:

Hospedando o site em seu próprio servidor

Neste caso, se os arquivos .htaccess não estiverem habilitados, você pode ativar os arquivos .htaccess simplesmente acessando o arquivo httpd.conf (arquivo de configuração padrão para o Apache HTTP Daemon) e localizando a seção <Diretórios>.

<Directory "/var/www/htdocs">

E localize a linha que diz…

AllowOverride None 

E corrija para.

AllowOverride All

Agora, ao reiniciar o Apache, o .htaccess funcionará.

Hospedando um site em um servidor de provedor de hospedagem diferente

Neste caso, é melhor consultar o administrador de hospedagem, se eles permitem acesso aos arquivos .htaccess.

25 Truques do ‘htaccess’ do Apache Web Server para Websites

1. Como habilitar mod_rewrite no arquivo .htaccess

mod_rewrite permite que você use redirecionamentos e oculte sua URL real redirecionando para outra URL. Essa opção pode ser muito útil, permitindo que você substitua URLs longas e extensas por URLs curtas e fáceis de lembrar.

Para permitir o mod_rewrite, basta adicionar a seguinte linha como a primeira linha do seu arquivo .htaccess.

Options +FollowSymLinks

Essa opção permite que você siga links simbólicos e, assim, habilite a opção mod_rewrite no site. Substituir a URL por uma curta e sucinta é apresentado mais adiante.

2. Como Permitir ou Negar Acesso a Websites

htaccess pode permitir ou negar acesso ao site, pasta ou arquivos no diretório em que está localizado usando as palavras-chave order, allow e deny.

Permitindo acesso apenas ao IP 192.168.3.1
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

A palavra-chave Order aqui especifica a ordem em que o acesso permitido, negado seria processado. Para a declaração acima de ‘Order‘, as declarações de Permitir seriam processadas primeiro e depois as declarações de negar seriam processadas.

Negar acesso a apenas um Endereço IP

As linhas abaixo fornecem os meios para permitir o acesso ao site para todos os usuários exceto um com o Endereço IP: 192.168.3.1.

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. Gerar documentos de erro do Apache para diferentes códigos de erro.

Usando algumas linhas simples, podemos corrigir o documento de erro que é executado em diferentes códigos de erro gerados pelo servidor quando o usuário/cliente solicita uma página não disponível no site, como a maioria de nós já viu a página ‘404 Página não encontrada‘ em seus navegadores da web. Os arquivos ‘.htaccess‘ especificam qual ação tomar em caso de tais condições de erro.

Para fazer isso, as seguintes linhas precisam ser adicionadas aos arquivos ‘.htaccess‘:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

ErrorDocument‘ é uma palavra-chave, o código de erro pode ser qualquer um dos 401, 403, 404, 500 ou qualquer código representativo de erro válido e por último, ‘caminho-do-documento’ representa o caminho na máquina local (caso você esteja usando seu próprio servidor local) ou no servidor (caso esteja usando o servidor de outra pessoa para hospedar seu site).

Exemplo:
ErrorDocument 404 /error-docs/error-404.html

A linha acima define o documento ‘error-404.html‘ localizado na pasta error-docs para ser exibido no caso de o servidor relatar o erro 404 para qualquer solicitação inválida de página pelo cliente.

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

A representação acima também está correta, o que coloca a string representando um arquivo HTML usual.

4. Configurar/Desconfigurar variáveis de ambiente do servidor Apache

No arquivo .htaccess, é possível configurar ou desconfigurar as variáveis de ambiente globais que o servidor permite que os proprietários dos sites modifiquem. Para configurar ou desconfigurar as variáveis de ambiente, é necessário adicionar as seguintes linhas aos arquivos .htaccess:

Configurando as variáveis de ambiente
SetEnv OWNER “Gunjit Khera”
Desconfigurando as variáveis de ambiente
UnsetEnv OWNER

5. Definindo diferentes tipos MIME para arquivos

MIME (Extensões de Multimídia de Internet Multipropósito) são os tipos reconhecidos pelo navegador por padrão ao executar qualquer página da web. É possível definir tipos MIME para o seu site nos arquivos .htaccess, para que diferentes tipos de arquivos definidos por você possam ser reconhecidos e executados pelo servidor.

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

Aqui, mod_mime.c é o módulo para controlar definições de diferentes tipos MIME e, se você tiver este módulo instalado no seu sistema, poderá usá-lo para definir diferentes tipos MIME para diferentes extensões usadas no seu site, para que o servidor possa entendê-los.

6. Como Limitar o tamanho de uploads e downloads no Apache

Arquivos .htaccess permitem que você controle a quantidade de dados que um cliente específico faz upload ou download do seu site. Para isso, basta adicionar as seguintes linhas ao seu arquivo .htaccess:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

As linhas acima definem o tamanho máximo de upload, o tamanho máximo dos dados sendo enviados, o tempo máximo de execução, ou seja, o tempo máximo que um usuário tem permissão para executar um site em sua máquina local, e o limite máximo de tempo dentro do tempo de entrada.

Source:
https://www.tecmint.com/apache-htaccess-tricks/