Apache - favicon e robots padrão

Publicado por kleber galucio em 08/05/2010

[ Hits: 12.324 ]

Blog: http://nld.klebrr.com/

 


Apache - favicon e robots padrão



Essa dica evita que o log de erros do Apache exiba um monte de erros 404 conforme abaixo:

[Sat May 01 07:49:01 2010] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico

E exibe um ícone e um txt padrão e personalizado caso não exista.

Solução 1

Criar um arquivo e colocar na raiz do site (/var/www/favicon.ico e robots.txt) e ou em todas as pastas raiz de múltiplos sites (virtual hosts).

Solução 2

Criar uma diretiva no httpd.conf que aponte o arquivo de ícone e texto padrão de todos os sites hospedados num mesmo servidor.

Siga os passos:

Tenha em mãos os seus próprios arquivos favicon.ico e robots.txt personalizados.

Crie uma pasta "ex" na raiz do servidor web (ver DocumentRoot). Exemplo:

# mkdir -p /var/www/ex

E copie os arquivos nessa pasta.

Edite o arquivo httpd.conf e logo abaixo da diretiva:

DocumentRoot "/var/www" # Diretório raiz do site
# bloco de diretivas do diretório raiz
.......
# fim do bloco, insira abaixo

Insira as linhas conforme abaixo:

# Abaixo a solução para quando não existir um arquivo favicon.ico ou robots.txt
# em qualquer (sub)diretório com acesso público.

RewriteEngine On
RewriteCond  %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule  .*favicon\.ico$    /var/www/ex/favicon.ico [L]
RewriteRule  .*robots\.txt$    /var/www/ex/robots.txt [L]

Caso utilize VirtualHosts, coloque antes do final de cada diretiva.

...
RewriteEngine On
RewriteCond  %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule  .*favicon\.ico$    /var/www/ex/favicon.ico [L]
RewriteRule  .*robots\.txt$    /var/www/ex/robots.txt [L]
# fim da diretiva

Reinicie o Apache para aplicar as alterações:

# /etc/init.d/apachectl restart

E teste acessando localhost/qualquerpasta/favicon.ico ou dominiovirtual/qualquerpasta/favicon.ico.

Lembrando que a diretiva abaixo:

RewriteCond  %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f

Testa se o arquivo requisitado existe no diretório especificado na (URL). Se existir um arquivo favicon.ico ou robots.txt em qualquer (sub)diretório, será exibido esse arquivo ao invés do que você personalizou.

Leitura recomendada: favicon.ico, robots.txt, apache2.2/virutalhost, mod_rewrite

Solução 3

Utilizando .htaccess (caso não tenha acesso ao httpd.conf).

Coloque o ícone e o robots.txt numa pasta "ex" de forma que tenha acesso público.

Crie um arquivo .htaccess na raiz do site (public_html) com o seguinte conteúdo:

RewriteEngine On RewriteCond  %{REQUEST_FILENAME} !-f RewriteRule  .*favicon\.ico$    /ex/favicon.ico [L] RewriteCond  %{REQUEST_FILENAME} !-f RewriteRule  .*robots\.txt$        /ex/robots.txt [L]

Até a próxima.

Outras dicas deste autor

BrOffice.org 3.2 não abre após reboot forçado? Eis a solução

Páginas de erros com imagens no Squid

ERROR: SMTP Error: The following recipients failed: [Solução para Moodle - BlueHost]

Listar artigos por ID/DESC no Joomla

Leitura recomendada

Gravar Slax Linux diretamente no HD e salvar as mudanças

Sincronizando senhas do Samba no OpenSuSE 10.1

Anexar partição com o GParted

O tv-time não acha sua placa de TV?

Web server Apache + PHP 5 + MySQL no Debian Squeeze sem complicação

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts