christianbarkowsky/contao-urlcleaner

此包已被放弃,不再维护。未建议替代包。

移除URL中的不需要部分,如'items'或'events'

1.1.0 2015-02-26 11:02 UTC

This package is auto-updated.

Last update: 2022-11-20 17:06:19 UTC


README

移除URL中的不需要部分,如"items"或"events"

工作原理

Contao的许多读者,例如新闻读者或事件读者,会将所需条目作为URL参数。然而,例如URL中前面有一个"/items/"或"/events/"。从用户角度和搜索引擎优化角度来看,URL的这一部分是不需要的。urlcleaner扩展提供了从这类不需要片段中清理URL的可能性。

重定向发生在两个方向:一方面,在链接到此类URL时,会从URL中删除不必要的部分。另一方面,在调用相应的URL时,会自动但不可见地添加已删除的元素。

应用

安装后,必须为每个要清理的URL在 localconfig.php 中添加一个条目。

重要:条目末尾不允许有斜杠!

重要:配置代码必须插入到### 安装脚本停止 ### 之前。

$GLOBALS['TL_CONFIG']['arrUrlFragments'] = array(
  'news-reader' => 'items',
);

在此示例中,将形如 /news-reader/items/alias 的URL重写为 /news-reader/alias。如果需要重写多个URL,则可以输入多行。例如

$GLOBALS['TL_CONFIG']['arrUrlFragments'] = array(
  'news-reader' => 'items',
  'event-reader' => 'events',
);

重写也可以在多个级别上进行。例如,如果博客条目的读者位于 /weblog/reader/ 下,并且URL为 /weblog/reader/items/alias,则可以按照以下方式重写

$GLOBALS['TL_CONFIG']['arrUrlFragments'] = array(
        'weblog' => 'reader/items',
);

重要

在展开URL时,会检查是否存在具有相应别名的页面。在这种情况下,不会展开URL。

在上面的最后一个示例中:/blog/foobar 是一个页面(假设已安装 folderurl) /blog/reader/items/foobar 是消息的正常URL

在链接到消息时,/blog/reader/items/foobar 将按照预期重写为 /blog/foobar。但是,当调用此URL时,会显示页面而不是消息。因此,请注意,元素的别名不应与其他(子)页面的别名相同。

避免重复内容

虽然在使用urlcleaner时,Contao内的所有链接都将完全替换,但内容仍然可以通过正常URL访问。这构成了所谓的重复内容,即在不同URL下有相同的内容,这会对搜索引擎排名产生负面影响。

因此,建议通过在 .htaccess 中添加条目将正常URL重定向到新的简写形式。以下是一些规则示例

RedirectMatch 301 ^(.*)/newsreader/items/(.*) $1/newsreader/$2 RedirectMatch 301 ^(.*)/eventreader/events/(.*) $1/eventreader/$2

如果将系统中的所有位置(例如使用"items"作为参数的位置)都重定向,则也可以使用单个重写规则进行重定向

RedirectMatch 301 ^(.*)/items/(.*) $1/$2

许可证:https://gnu.ac.cn/licenses/lgpl-3.0.html LGPL
作者: christianbarkowsky