Tópicos Recentes

sábado, 1 de maio de 2010

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 icone 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 multiplos sites (virtual hosts)

Solução 2:
Criar uma diretiva no httpd.conf que aponte o arquivo de icone e texto padrão para 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 logo abaixo da diretiva 

DocumentRoot "/var/www" # Diretório raiz do site
# bloco de diretivas do diretorio 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 publico.
    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 diretorio especificado na (URL),
assim, 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 icone e o robots.txt numa pasta "ex" de forma que tenha acesso publico.
- 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.

Esta dica foi publicada no VOL em 2010-05-08

Dicas de .htaccess

.htaccess é seu amigo
.htaccess URLs amigáveis
.htaccess editor on-line

0 comentários: