对于PHP,我真的是一个菜鸟,我想请求你的帮助。我想为我的Wordpress网站创建一个404.php,用适当的语言显示404页面。该网站使用多种语言:荷兰语和英语。 (我尝试了一些插件,但它们不适用于我当前的主题)。我做了一些研究,发现了一些零碎的东西,并掌握了一段不起作用的PHP代码。如果你能够如此友善地指出我正确的方向,这将是伟大的。这就是我想出的:
<?php
$incomingUrl = $_SERVER['REQUEST_URI'];
if($incomingUrl == 'damcms.com/en') {
wp_redirect(damcms.com/en/page-not-found-404);
exit;
} else {
wp_redirect(damcms.com/pagina-niet-gevonden-404);
exit;
}
?>
我没有收到错误消息,没有显示任何内容。所以我想念一下,什么?提前谢谢。 克劳迪亚
答案 0 :(得分:0)
首先,没有任何反应的原因在于:
wp_redirect(damcms.com/en/page-not-found-404);
任何时候你在PHP中都有一个字符串, 必须 在引号中;否则PHP会尝试将其解释为指令(并且damcms.com/en/page-not-found-404
不是有效的PHP指令)。
所以这会奏效:
wp_redirect('damcms.com/en/page-not-found-404');
但问题更严重:您不想只检查网址 是否 damcms.com/en
- 您想要检查 是否以 damcms.com/en
开始。
所以,也许这就是:
if(strpos($_SERVER['REQUEST_URI'], 'damcms.com/en') !== false)) {
wp_redirect('damcms.com/en/page-not-found-404');
} else {
wp_redirect('damcms.com/pagina-niet-gevonden-404');
}
exit;
但更深入一级,即使这有点不确定。 WordPress已经有一个404.php
模板,可以显示任何404页面。我强烈建议编辑 - 并 那里 执行if ... 'damcms.com/en'
测试,然后可能只包含一个404-en.php
模板。这样现有的404机制仍然有效。通过您的设置,访问者将被重定向到200
页面,因此对于搜索引擎,您的网站似乎根本没有404,所有内容都是有效内容!