为什么我找不到页面(404)的正确链接?

我有一个很奇怪的问题:谷歌给我的一些链接在我的网站地图不可访问,并给出了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/solutionshttp://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]