我有一个很奇怪的问题:谷歌给我的一些链接在我的网站地图不可访问,并给出了404错误。 不过,我试图打开有问题的网页,它工作正常。
该网站已build成使用codeigniter,这里是一个链接的样本
现在,如果您尝试打开上面的链接,它将正常工作。 但如果你试图curl -I :
curl - 我http://widwebway.com/en/solutions HTTP / 1.1 404未find
我已经做了一些路线和重写规则,从URL中排除控制器名称。 换句话说,正确的链接是
curl -I http://widwebway.com/en/widwebway/view/solutions HTTP / 1.1 301永久移动 date:2012年2月29日星期三18:05:01 GMT 服务器:Apache / 2.2.14(Ubuntu) 地点:http://widwebway.com/en/solutions 变化:接受编码 Content-Type:text / html; 字符集= ISO-8859-1
Apache错误日志给出
文件不存在:/ var / www / myweb / en,referer:http://widwebway.com/en/solutions
我的.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>
任何想法是如何到这个页面,但它给curl或谷歌机器人404?
以下是我发现的:浏览器实际上也在http://widwebway.com/en/solutions上获得404
当我去: http://widwebway.com/en/widwebway/view/solutions : http://widwebway.com/en/widwebway/view/solutions我得到:
Request URL:http://widwebway.com/en/widwebway/view/solutions Request Method:GET Status Code:301 Moved Permanently
此举是针对: http://widwebway.com/en/solutions : http://widwebway.com/en/solutions这个文件/en/solutions实际上并不存在,但与您的重写规则,你告诉浏览器显示/en/widwebway/view/solutions /en/solutions
从Chromenetworking检测:
Request URL:http://widwebway.com/en/solutions Request Method:GET Status Code:404 Not Found
尝试使用PT标志。 因为/ en / solutions不是一个真正的文件。 这应该让你远离404错误Apache文档的例子
Alias /icons /usr/local/apache/icons RewriteRule /pics/(.+)\.jpg /icons/$1.gif [PT]