多站点 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
}
出于营销目的,我是否维护一个具有两个不同域的相同网站,在 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
}