如何在站点配置中为相同的根页面 ID 配置多个域?
Posted
技术标签:
【中文标题】如何在站点配置中为相同的根页面 ID 配置多个域?【英文标题】:How to configure multiple domains for same Root Page ID within Site Configuration? 【发布时间】:2020-10-15 15:45:58 【问题描述】:我有一个可以被多个域访问的根页面。这些域是别名(没有变体,取决于条件)。
在 TYPO3 的早期版本中,您可以在一个根页面上拥有多个 sys_domain
-records,而最上面的一个用于构建绝对 URL。
现在如何配置这种行为?
(我知道,每个网站最好有一个域,因为重复的内容等等......)
【问题讨论】:
我同意“由于内容重复,每个网站最好有一个域”,而是从 SEO 角度重定向到规范域。但是,既然您在这里确实有一个用例,那么有充分的理由这样做吗? 只要您定义了您的元规范,您就可以有尽可能多的重复...没有 SEO 剧透,只需选择一个作为主页并将该规范插入任何地方 【参考方案1】:您可以使用当前主机扩展基本变体的条件,以根据当前主机切换您的基本 URL。
我上传了一个小扩展,您可以使用它:
https://github.com/b13/host_variants
【讨论】:
【参考方案2】:如果您仅将其他域用作别名并希望重定向到主域,您可以使用 .htaccess 中的重写来重定向。
如果您想访问所有可以使用的域的树:
base: /
baseVariants:
-
base: 'https://www.xxx.de/'
condition: 'applicationContext == "Production"'
-
base: 'https://www.yyy.de/'
condition: 'applicationContext == "Production"'
-
base: 'https://www.zzz.de/'
condition: 'applicationContext == "Production"'
结合主域的 config.baseURL,您应该能够实现与 sys_domain 记录相同的行为。
如果您需要不同的 baseURL,您可以为每个主机使用。无需额外的扩展。
[request.getNormalizedParams().getHttpHost() == 'www.yyy.de']
config.baseURL = https://www.yyy.de/
[end]
【讨论】:
【参考方案3】:有一个解决方案是添加您自己的条件,可以通过基本变量使用 - 有关示例,请参阅博客文章 https://www.in2code.de/en/recent/use-different-domains-within-the-same-site-in-typo3/
【讨论】:
【参考方案4】:这对我有用 typo3conf/sites/sitename/config.yaml
(TYPO3 V10)
:
base: 'http://site.de/'
baseVariants:
-
base: 'http://alias.de/'
condition: 'getenv("HTTP_HOST") == "alias.de"'
为了进一步选择我在setup.ts
中关注:
# Multidomain
config.baseURL = http://site.de/
config.absRefPrefix = http://site.de/
[request.getNormalizedParams().getHttpHost() == "alias.de"]
config.baseURL = http://alias.de/
config.absRefPrefix = http://alias.de/
[global]
【讨论】:
以上是关于如何在站点配置中为相同的根页面 ID 配置多个域?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MongoDB 中为 NodeJS Express 应用程序存储站点配置?