我目前正在 TYPO3 中处理 ONEPAGE,因此收集“开始”页面的所有子页面的所有内容,以便在“开始”页面上一起输出。
现在我遇到的情况是,如果有人知道“开始”页面的子页面的 url,那么这个页面会以正常方式输出,而不连接到我不想要的 ONEPAGER。
那么,是否有人知道如何将所有点击重定向到“开始”的子页面到“开始”页面本身。
我知道这可以通过 htaccess/Apache 重写来实现,但我正在寻找一个通用的解决方案,例如使用 TYPO3 内部方法。
谢谢!
这个问题取决于您的需求。有几种方法可以解决这个问题。
1:你想要一个重定向:
A)信息模块中的realURL重定向:
有一种方法可以在 TYPO3 后端为精确的 url 编写重定向规则。如果编辑应该有一些自由来设置这些规则,那可能会很方便。
优点: 编辑可以有机会设置网址。你不需要任何编程。
缺点: 您没有正则表达式,您需要直接设置每个网址。如果您更改标题,重定向将不再起作用。
进入信息模块并在标题行中选择“RealURL Management”,然后选择“显示”“重定向”选项。
B)在 RealURLConfiguration.php 中使用encodeSpURL_postProc
和。decodeSpURL_preProc
使用此技术,您可以操纵“传入”和“传出”网址。如果您想缩短网址,请使用它。
这是一个示例,但可以肯定的是,您可以在 google 中找到更多信息。
优点: 您可以制定灵活的正则表达式规则。
缺点: 您需要编写 PHP 代码,并且此逻辑将由每个传出链接运行,因此如果您有很多要转换的链接,它可能不是最快的选择。
C) 你在 .htaccess 中写了两行。
所以关键是,如果你有一个明确的规则来永久地重写更多的 url。如果您可以访问您的 .htaccess 文件,那么我强烈建议您使用它。如果您没有更多的数百个或 tausend 特定重定向,那么这是编写规则的最佳位置。它在任何 PHP 代码之前运行,因此它绝对是最快的解决方案。
优点:您不需要编写尽可能多的代码。这是重定向多个 url 的最佳方式,其性能高于任何 php 代码。
缺点:只有当您无权访问 .htaccess 文件时,您才能这样做。否则,对于很多重定向,最好将重定向放入 httpd conf。
2: 404 任何错误的 url。
您可以处理这些页面,因为它们是“错误的 url”,例如 www.yourpage.com/it_is_a_not_existing_page/。建议使用 404 页面来处理这些问题。
在这种情况下,如果您将网站中的部分复制到起始页中,您可以将页面设置为隐藏,然后它们将抛出 404 错误,就像真正的无效请求一样。
我建议您考虑 404 解决方案,如果没有,请使用 .htaccess。