当涉及到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;
}
?>我没有收到错误消息,没有显示任何内容。所以我错过了什么,什么?提前谢谢。克劳迪娅
发布于 2016-03-23 19:01:37
首先,没有发生任何事情的原因是:
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');但还有一个更大的问题:你不想只检查URL是否 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页面的404.php模板。我强烈建议对其进行编辑--在那里使用执行if ... 'damcms.com/en'测试,然后可能只包含一个404-en.php模板。这样,现有的404机制仍然有效。有了你的设置,访问者将被重定向到一个200页面,所以对于搜索引擎来说,你的网站根本没有404,一切都是有效的内容!
https://stackoverflow.com/questions/36176164
复制相似问题