如何在MODX

时间:2015-05-12 18:25:27

标签: apache http modx http-status-code-410

MODX将所有未找到的页面重定向到404状态代码。永远消失的页面需要设置为410. Google网站管理员会不断检查抓取错误中的非现有页面,并回复404。

.htaccess中设置410仍会导致MODX为404

RewriteEngine On
RewriteBase /
RewriteRule ^folder/ - [G,L]

如何在MODX中设置410代码?

2 个答案:

答案 0 :(得分:0)

看起来您应该能够使用sendRedirect方法:

http://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.sendredirect

但有趣的是:你如何确定一个页面实际上是410还是合法的404?您可能需要对modx如何处理404&尝试在它插入插件之前捕获它。

答案 1 :(得分:0)

此脚本检查所请求的资源是否存在,如果存在,则返回410.如果该资源不存在,则返回默认值404.这对于以前发布并由Google编制索引的资源非常方便。 / p>

此脚本不会检查已删除的资源。如果你想要这个,你需要编写一个代码来存储所有存在的别名,并检查任何针对该列表的OnPageNotFound请求。

创建名为 set410

的插件

检查系统事件 OnPageNotFound

粘贴此代码:

<?php
$alias = basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); // Get last alias from url (preserve only the alias after last slash). Needed when using subfolders.
$resource = $modx->getObject('modResource', array('alias' => $alias));

if ($resource) {
    $modx->sendForward(411, 'HTTP/1.1 410 Gone'); // ID found > 410
}
?>

记住:

  • 将999替换为410页的ID。
  • 请记住测试一下 使用浏览器功能,您无法登录管理器!
  • 此脚本仅在启用友好网址
  • 的情况下进行测试