{"id":3043,"date":"2014-09-15T19:16:22","date_gmt":"2014-09-15T19:16:22","guid":{"rendered":"http:\/\/www.deuzebranaweb.com.br\/?p=3043"},"modified":"2014-09-15T19:16:22","modified_gmt":"2014-09-15T19:16:22","slug":"utilidades-do-arquivo-htaccess","status":"publish","type":"post","link":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/2014\/09\/15\/utilidades-do-arquivo-htaccess\/","title":{"rendered":"Utilidades do arquivo .htaccess"},"content":{"rendered":"<h1 class=\"article-title\">Utilidades do arquivo .htaccess<\/h1>\n<div><span class=\"article-meta\"><span class=\"article-meta\"> 8 de outubro de 2010 em <a href=\"http:\/\/www.lucaspeperaio.com.br\/blog\/categoria\/web\" rel=\"category tag\">Desenvolvimento Web<\/a><\/span><\/span><\/p>\n<div><\/div>\n<\/div>\n<p><a class=\"cboxElement\" title=\"apache_display\" href=\"http:\/\/www.lucaspeperaio.com.br\/blog\/wp-content\/uploads\/2010\/10\/apache_display.png\" rel=\"lightbox[281]\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-285\" title=\"apache_display\" src=\"http:\/\/www.lucaspeperaio.com.br\/blog\/wp-content\/uploads\/2010\/10\/apache_display.png\" alt=\"\" width=\"261\" height=\"285\" \/><\/a>Quem possui um site hospedado em plataforma linux certamente j\u00e1 trabalhou ou pelo menos ouviu falar do Apache. O .htaccess \u00e9 um arquivo de controle do apache, cujas as fun\u00e7\u00f5es s\u00e3o: redicionar URLs, bloquear diret\u00f3rios com senhas, criar erros personalizados como o erro 404, escolher se o site acessa sem o com o www\u00a0 e etc. Neste artigo ser\u00e3o detalhados as principais configura\u00e7\u00f5es deste arquivo.<\/p>\n<p>&nbsp;<\/p>\n<p>O .htaccess \u00e9 um arquivo sem nome, ou seja, ele possui apenas extens\u00e3o. Para criar as regras abaixo, abra o bloco de notas ou similar, salve como \u201ctodos os arquivos\u201d e com o nome .htaccess. Vale ressaltar que alguns c\u00f3digos s\u00f3 funcionar\u00e3o se determinadas extens\u00f5es estiverem habilitadas no apache. Caso algum c\u00f3digo gere um erro 500, habilite no apache o m\u00f3dulo correspondente a ele. E para evitar tais erros, fa\u00e7a os c\u00f3digos em estruturas condicionais (&lt;IfModule&gt;), assim o c\u00f3digo s\u00f3 ser\u00e1 executado caso o m\u00f3dulo esteja ativo.<\/p>\n<h3>Ocultando o index da URL<\/h3>\n<p>&nbsp;<\/p>\n<pre>Options +FollowSymLinks\nRewriteEngine On\nRewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\\ \/([^\/]+\/)*index\\.html\\ HTTP\/\nRewriteRule ^(([^\/]+\/)*)index\\.html$ http:\/\/www.seusite.com.br\/$1 [R=301,L]\n#obs, se o seu site \u00e9 feito em php, substitua os \"html\" pelo mesmo\n\n<\/pre>\n<h3>Protegendo o seu site contra c\u00f3pia ou uso indevido de arquivos (como scripts php, js, css, imagens)<\/h3>\n<pre>RewriteEngine on\nRewriteCond %{HTTP_REFERER} !^http:\/\/seusite.com.br\/.*$ [NC]\u00a0 #este site est\u00e1 liberado a usar (o seu site no caso)\nRewriteCond %{HTTP_REFERER} !^http:\/\/www.seusite.com.br\/.*$ [NC]\u00a0 #este site est\u00e1 liberado a usar\nRewriteCond %{HTTP_REFERER} !^http:\/\/www.google.com.br\/.*$ [NC]\u00a0 #liberar o google para usar as suas imagens\nRewriteRule .*\\.(jpg|jpeg|gif|png|bmp|php|js|swf)$ \u2013 [F,NC]\n#Neste caso, se algu\u00e9m que n\u00e3o est\u00e1 na lista acima tentar usar as suas imagens direto do seu site ou usar os seus scripts, mostrar\u00e1 uma tela com erro e as imagens n\u00e3o ser\u00e3o mostradas.\n\n\n<\/pre>\n<h3>Bloquear o arquivo .htaccess contra acesso pela URL<\/h3>\n<pre>&lt;Files ~ \"^\\.(htaccess|htpasswd)$\"&gt;\n  deny from all\n&lt;\/Files&gt;<\/pre>\n<h3>Bloqueando arquivos espec\u00edficos contra acesso pela URL<\/h3>\n<pre>&lt;files seuarquivo.php&gt;\n  order allow,deny\n  deny from all\n&lt;\/files&gt;<\/pre>\n<h3>Sempre colocar \u201cwww\u201d na URL<\/h3>\n<pre>RewriteEngine on\nRewriteCond %{HTTP_HOST} ^(seusite\\.com\\.br)(:80)? [NC]\nRewriteRule ^(.*) http:\/\/www.seusite.com.br\/$1 [R=301,L]\norder deny,allow\n\n<\/pre>\n<h3>Comprimir arquivos do site para consumir menos banda<\/h3>\n<p>&nbsp;<\/p>\n<pre>&lt;IfModule mod_deflate.c&gt;\n  &lt;FilesMatch \"\\.(js|css|jpg|png|gif|ico|php|html|htm)$\"&gt;\n    &lt;ifModule mod_filter.c&gt;\n      SetOutputFilter DEFLATE\n      AddOutputFilterByType DEFLATE text\/css text\/javascript application\/x-javascript text\/html text\/plain text\/xml image\/x-icon\n    &lt;\/IfModule&gt;\n  &lt;\/FilesMatch&gt;\n&lt;\/IfModule&gt;\n\n\n<\/pre>\n<h3>Criando p\u00e1ginas de erros personalizadas<\/h3>\n<pre>ErrorDocument 400 \/sua-pagina-erro-400\nErrorDocument 404 \/p\u00e1gina-de-erro-404\nErrorDocument 500 \/p\u00e1gina-para-erro-500\n#obs saiba mais sobre como criar <a href=\"http:\/\/www.lucaspeperaio.com.br\/blog\/como-criar-paginas-de-erro-404-personalizadas\/\">p\u00e1ginas de erros personalizadas<\/a><\/pre>\n<h3>Alterar a p\u00e1gina inicial (padr\u00e3o) do site<\/h3>\n<pre>DirectoryIndex minhaoutrapagina.html<\/pre>\n<h3>Redirecionamento 301 com htaccess<\/h3>\n<pre>Redirect 301 \/p\u00e1gina-a-ser-movida\u00a0 http:\/\/www.seusite.com.br\/pagina-movida-para-ca<\/pre>\n<h3>Bloquear listagem de diret\u00f3rios<\/h3>\n<pre>Options -Indexes<\/pre>\n<h3>For\u00e7ar o uso de SSL<\/h3>\n<pre>RewriteEngine On\nRewriteCond %{SERVER_PORT} 80\nRewriteRule ^(.*)$ https:\/\/seu-site.com.br\/$1 [R,L]<\/pre>\n<h3>Desabilitar case sensitive<\/h3>\n<pre>CheckSpelling On\n#agora a url PAGINA.HTML \u00e9 igualmente acessada por pagina.html<\/pre>\n<h3>Restringindo o acesso por IP<\/h3>\n<pre>Order allow,deny\nallow from 192.168.0.\ndeny from all\n # Deixa a somente a INTRANET acessar<\/pre>\n<pre>Order deny,allow\ndeny from 192.168.0.25\nallow from all\n# Deixa todo mundo acessar, menos o IP 192.168.0.25<\/pre>\n<pre>Order deny, allow\ndeny from all\n#bloquear geral<\/pre>\n<h3>Redirecionar acesso de um site para outro lugar<\/h3>\n<pre>RewriteEngine on\nRewriteCond %{HTTP_REFERER} ^http(s)?:\/\/(www\\.)?bloqueado.com.br.*$ [NC]\nRewriteRule .* http:\/\/www.antispam.br [R,L]\n#Se o site \"bloqueado\" mandar algum visitante para aqui, \u00e9 redirecionado para o \"antispam\"<\/pre>\n<h3>Express\u00f5es regulares<\/h3>\n<pre>#todos os arquivos de uma p\u00e1gina ser\u00e3o redirecionados para outra\nRewriteEngine on\nRewriteRule ^pagina-antiga\/(.*) http:\/\/www.novosite.com.br\/pagina-antiga\/$1<\/pre>\n<pre>#redirecionar somente os arquivos terminados em php\nRewriteEngine om\nRewriteRule ^pagina-antiga\/(.*)\\.php http:\/\/www.novosite.com.br\/pagina-antiga\/$1.php<\/pre>\n<pre>#redirecionar tudo de um site para outro\nRedirectMatch permanent \/(.*) http:\/\/www.novosite.com\/$1<\/pre>\n<h3>Retirar extens\u00f5es da URL<\/h3>\n<pre>RewriteEngine on\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteCond %{REQUEST_FILENAME}\\.html -f\nRewriteRule ^(.*)$ $1.html\n#neste caso, estou retirando apenas o HTML<\/pre>\n<h3>For\u00e7ar o uso do Charset UTF-8 para arquivos<\/h3>\n<pre>&lt;FilesMatch \"\\.(htm|html|css|js)$\"&gt;\n  AddDefaultCharset UTF-8\n&lt;\/FilesMatch&gt;<\/pre>\n<h3>Cache de navegador \u2013 Definir tempo de expira\u00e7\u00e3o (segundos)<\/h3>\n<div>\n<pre><code><\/code><code>&lt;ifModule mod_expires.c&gt;\n\u00a0 ExpiresActive On\n\u00a0 ExpiresDefault A0\n\u00a0 ExpiresByType image\/gif A604800 \u00a0\n\u00a0 ExpiresByType image\/jpeg A604800\n\u00a0 ExpiresByType image\/png A604800\n\u00a0 ExpiresByType text\/css A604800\n\u00a0 ExpiresByType text\/javascript A604800\n\u00a0 ExpiresByType application\/x-javascript A604800\n&lt;\/ifModule&gt;<\/code><\/pre>\n<\/div>\n<h3>Cache de navegador \u2013 Definir controle de cache (segundos)<\/h3>\n<pre><code><\/code><code>&lt;IfModule mod_headers.c&gt;\n &lt;FilesMatch \"\\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|xml|woff)$\"&gt;\n Header set Cache-Control \"max-age=604800, public\"\n Header append Vary User-Agent env=!dont-vary\n Header append Vary Accept-Encoding\n Header unset Pragma\n &lt;\/FilesMatch&gt;\n&lt;\/IfModule&gt; <\/code><\/pre>\n<h3>Cache de navegador \u2013 For\u00e7ar o uso do cache, desabilitando o ETag<\/h3>\n<pre><code><\/code><code>&lt;IfModule mod_headers.c&gt;\n Header unset Etag\n Header unset Last-Modified \n&lt;\/IfModule&gt;<\/code><code>\n<\/code>#obs saiba mais sobre <a href=\"http:\/\/www.lucaspeperaio.com.br\/blog\/cache-de-navegador-com-htaccess\" target=\"_blank\">cache com htaccess<\/a><\/pre>\n<h3>Adicionar novos mimetypes<\/h3>\n<pre><code><\/code><code>AddType application\/x-endnote-connection enz AddType application\/x-endnote-filter enf AddType application\/x-spss-savefile sav <\/code><\/pre>\n<h3>Desabilitar execu\u00e7\u00e3o de certos Scripts<\/h3>\n<pre>Options -ExecCGI\nAddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi<\/pre>\n<h3>Alterar a linguagem Padr\u00e3o<\/h3>\n<pre><code><\/code>DefaultLanguage en-US<\/pre>\n<h3>Alterar fuso hor\u00e1rio padr\u00e3o<\/h3>\n<pre>SetEnv TZ America\/Indianapolis<\/pre>\n<h3>For\u00e7ar download de certos arquivos<\/h3>\n<pre>AddType application\/octet-stream .avi .mpg .mov .pdf .xls .mp4<\/pre>\n<h3>Bloquear requisi\u00e7\u00e3o baseado no user-agent<\/h3>\n<pre>SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT\nSetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT\nDeny from env=HTTP_SAFE_BADBOT<\/pre>\n<p>&nbsp;<\/p>\n<p>http:\/\/www.lucaspeperaio.com.br\/blog\/utilidades-do-arquivo-htaccess<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Utilidades do arquivo .htaccess 8 de outubro de 2010 em Desenvolvimento Web Quem possui um site hospedado em plataforma linux certamente j\u00e1 trabalhou ou pelo menos ouviu falar do Apache. O .htaccess \u00e9 um arquivo de controle do apache, cujas as fun\u00e7\u00f5es s\u00e3o: redicionar URLs,&#8230;<\/p>\n","protected":false},"author":2,"featured_media":3045,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_angie_page":false,"page_builder":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-3043","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apache2"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/3043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=3043"}],"version-history":[{"count":0,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/posts\/3043\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media\/3045"}],"wp:attachment":[{"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=3043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=3043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.deuzebranaweb.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=3043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}