Por que eu recebo a página não encontrada (404) para os links corretos?

1

Eu tenho um problema muito estranho: o Google está me dizendo que alguns links no meu sitemap não estão acessíveis e estão dando erros 404. No entanto, tentei abrir as páginas em questão e funciona bem.

O site foi criado usando codeigniter e aqui está uma amostra de links

Agora, se você tentar abrir o link acima, ele funcionará bem. mas se você tentar curl -I :

curl -I http://widwebway.com/en/solutions
HTTP/1.1 404 Not Found

Eu fiz algumas rotas e reescrevi as regras para excluir o nome do controlador da URL. Em outras palavras, o link correto é

curl -I http://widwebway.com/en/widwebway/view/solutions
HTTP/1.1 301 Moved Permanently
Date: Wed, 29 Feb 2012 18:05:01 GMT
Server: Apache/2.2.14 (Ubuntu)
Location: http://widwebway.com/en/solutions
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1

O log de erros do Apache fornece

File does not exist: /var/www/myweb/en, referer: http://widwebway.com/en/solutions

meu .htaccess é:

ErrorDocument 404 /index.php
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^ar/widwebway/view/([a-z_]{1,50})[/]*$           /ar/$1 [L,R=301,NC]
  RewriteRule ^en/widwebway/view/([a-z_]{1,50})[/]*$           /en/$1 [L,R=301,NC]
  RewriteRule ^en/widwebway[/]*$           /en/home [L,R=301,NC]
  RewriteRule ^ar/widwebway[/]*$           /ar/home [L,R=301,NC]
</IfModule>

Alguma ideia de como é que a página está lá, mas dá 404 no curl ou no Google bot?

    
por Alaa Alomari 29.02.2012 / 19:25

1 resposta

1

Veja o que eu encontrei: O navegador está recebendo um 404 também em http://widwebway.com/en/solutions

Quando eu vou para: http://widwebway.com/en/widwebway/view/solutions Eu recebo:

Request URL:http://widwebway.com/en/widwebway/view/solutions
Request Method:GET
Status Code:301 Moved Permanently

A movimentação é direcionada para: http://widwebway.com/en/solutions Este arquivo /en/solutions na verdade não existe, mas com sua regra de reescrita você está dizendo ao navegador para exibir o conteúdo de /en/widwebway/view/solutions quando ele vir /en/solutions

Da Inspeção de Rede do Chrome:

Request URL:http://widwebway.com/en/solutions
Request Method:GET
Status Code:404 Not Found

Tente usar o sinalizador PT ao invés disso. já que as / en / solutions não são um arquivo real. Isso deve te afastar dos erros 404 Exemplo de documentos do Apache

Alias /icons /usr/local/apache/icons
RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT]
    
por 29.02.2012 / 22:43