【发布时间】:2014-04-22 16:11:40
【问题描述】:
我们正在 wordpress 之上建立一个大学搜索网站,并拥有自己的自定义页面。 搜索结果后,当用户点击大学链接时,会打开一个页面 http://studyn.us/c-102614-university-of-alaska-fairbanks 不知道为什么网络状态是404,虽然我可以看到页面上的数据。
我已在 chrome 中附加了网络状态的响应。您可以看到我们在页面中也有数据。
基于 url,我们重定向到另一个模板。下面的代码写在functions.php中
function redirect_to_college_template()
{
if( !is_front_page()) :
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$url = trim($url, '/');
$headURL = substr($url, strrpos($url, '/')+1);
$college=explode ("-",$headURL);
$var=$college[0];
$college=$college[1];
endif;
echo $college;
if($var=='c' & is_numeric($college)!='')
{
//echo $college;
include( get_template_directory() . '/college-page.php' );
exit();
}
}
add_action( 'template_redirect', 'redirect_to_college_template' );
我不确定为什么即使显示数据也会出现 404。 google爬取网站时,也是同样的问题。 是不是因为functions.php中写代码的方式?
这个问题会不会是页面标题和url不匹配?
【问题讨论】:
-
404 只是一个状态码,服务器可以发送任何它想要的内容作为内容。发生的事情基本上相当于绝地思维技巧:“这不是你要找的页面”,尽管它确实是。
-
这发生在我更新 Apache 时。我相信较新版本的 Wordpress 已经涵盖了它。 - 据我所知,这是因为重写和 apache 检查实际文件 - 不存在 - 因此默认为 404 作为状态消息。
-
但谷歌无法索引页面。所有这些网址 studyn.us/c-102614-university-of-alaska-fairbanks 也是 sitemap.xml 的一部分。 google 抓取 url 并找不到内容。必须有一条出路。
-
您使用的是哪个版本的 Wordpress?
-
我不知道
http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]是什么意思。