多站点 TYPO3 v9,一个根页面上多个域的不同 robots.txt

Multisite TYPO3 v9, distinct robots.txt for multiple domains on one rootpage

出于营销目的,我是否维护一个具有两个不同域的相同网站,在 TYPO3 v8 中,我只需在根页面上添加一个域记录,并通过 realurl) ...

对于 v9,我找不到执行此操作的方法,我尝试在 config.yaml 中手动输入各种注释,但没有任何效果(即我尝试复制 url 的注释)。 ..

routes:
  -
    route: robots.txt
    type: staticText
    content: "User-agent: *\r\nDisallow: /"
    contentVariants:
      -
        content: "User-agent: *\r\nAllow: /"
        condition: 'getenv("HTTP_HOST") == "2dn-domain.com"'

有谁知道有效的注释或不同的方法...

在我看来,没有必要用所有 TYPO3 开销加载 robots.txt,除非您想向其中动态添加内容。

您可以使用网络服务器重写规则处理多个 robots.txt,例如使用 Apache:

RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L]

此规则根据子目录中的 HTTP_HOST 加载 robots.txt:

  • robots/domain-a.xy
  • robots/domain-b.xy

我喜欢留在 'regular' 解决方案中,所以我找到了一个中间立场:

在后端输入 Route Type = Page, File or URL [uri]

具有值 t3://page?type=201 以便为机器人寻址页面类型

并使用 Typoscript 定义条件机器人文件:

# Theme robots.txt

robots = PAGE
robots {
    typeNum = 201
    config {
        disableAllHeaderCode = 1
        additionalHeaders.10.header = Content-Type:text/plain;charset=utf-8
        xhtml_cleaning = 0
        admPanel = 0
        debug = 0
        index_enable = 0
        removeDefaultJS = 1
        removeDefaultCss = 1
        removePageCss = 1
        INTincScript_ext.pagerender = 1
        sourceopt.enabled = 0
    }

    10 = TEXT
    10.value (
User-Agent: *
Allow: /

# indexed search
User-agent: googlebot
Disallow: /*?tx_indexedsearch

# folders
Disallow: /typo3/
Disallow: /typo3conf/
Allow: /typo3conf/ext/
Allow: /typo3temp/

# parameters
Disallow: /*?id=*                    # non speaking URLs
Disallow: /*&id=*                    # non speaking URLs
Disallow: /*cHash                    # no cHash
Disallow: /*tx_powermail_pi1         # no powermail thanks pages
Disallow: /*tx_form_formframework    # no forms

# sitemap
Sitemap: {$theme.configuration.sitemap}
    )
}

# Adwords Site closed
[globalString = ENV:HTTP_HOST=adw-domain.com]
    robots.10.value (
User-Agent: *
Disallow: /
    )
[global]

我还在 constants.typoscript 中为 seo 站点设置了一个常量:

theme.configuration {
    sitemap = /?eID=dd_googlesitemap
    sitemap = http://seo-domain.com/sitemap/seo-domain.xml
}