Configuration 如何设置Typo3 v10站点配置,使其等同于通配符,但只有一个例外?

Configuration 如何设置Typo3 v10站点配置,使其等同于通配符,但只有一个例外?,configuration,typo3,typo3-10.x,Configuration,Typo3,Typo3 10.x,如何设置Typo3 V10站点配置以执行此操作: 所有传入内容都转到一个站点根页面: 除了这一子域,它将转到一个单独的根页面: 我有一个基于Typo3 8.7的web应用程序,我正试图升级到v10。在8.7应用程序中,每个客户组织都有一个唯一的子域-school1.webapp.com、anotherschool.webapp.com等,所有这些都指向同一个typo3站点根页面。每次我需要创建一个新客户时,我所要做的就是添加一个新的sys_域记录,然后一个自定义插件将当前sys_域记录作为分离客

如何设置Typo3 V10站点配置以执行此操作:

  • 所有传入内容都转到一个站点根页面:
  • 除了这一子域,它将转到一个单独的根页面:
  • 我有一个基于Typo3 8.7的web应用程序,我正试图升级到v10。在8.7应用程序中,每个客户组织都有一个唯一的子域-school1.webapp.com、anotherschool.webapp.com等,所有这些都指向同一个typo3站点根页面。每次我需要创建一个新客户时,我所要做的就是添加一个新的sys_域记录,然后一个自定义插件将当前sys_域记录作为分离客户数据的手段。*.webapp.com的通配符sys_domain记录会发现任何拼写错误并重定向到单独的页面

    一个例外是auth.webapp.com,它为所有客户处理oauth身份验证,并转到不同的站点根页面

    这使我能够通过一个简单的表单添加新客户,它添加了一个新的sys_域记录,并完成了任务

    我现在需要升级到Typo3 v10。我可以很容易地检测到传入的子域,以便在客户数据之间进行分割,但是我在使用新的站点配置工具时遇到了问题。我所需要的就是将auth.webapp.com路由到一个站点根页面,并将所有其他传入的内容路由到另一个站点根页面

    我当前的设置似乎可以将所有内容路由到站点根目录

     - Entry point /
     - Variant    Base:  https://%env(HTTP_HOST)%/
                  Condition:    getenv("HTTP_HOST") == "*"
    
    但是如果我为auth.webapp.com域创建第二个站点条目,我只会得到一个FE错误 “找不到页面-该页面不存在或无法访问。原因:请求的页面不存在”

    入口点/auth.webapp.com/将导致此子域转到主客户入口点,即使yaml入口表示它指向了正确的起点

    MAIN SITE - All incoming subdomains except  auth.webapp.com
    
    base: /
    baseVariants:
      -
        base: 'https://%env(HTTP_HOST)%/'
        condition: 'getenv("HTTP_HOST") == "*"'
    errorHandling:
      -
        errorCode: 404
        errorHandler: Page
        errorContentSource: 't3://page?uid=13'
      -
        errorCode: 403
        errorHandler: Page
        errorContentSource: 't3://page?uid=1'
      -
        errorCode: 500
        errorHandler: Page
        errorContentSource: 't3://page?uid=14'
    flux_content_types: ''
    flux_page_templates: ''
    languages:
      -
        title: English
        enabled: true
        base: /
        typo3Language: default
        locale: en_GB.UTF-8
        iso-639-1: en
        websiteTitle: 'Website Title Name'
        navigationTitle: ''
        hreflang: en-GB
        direction: ''
        flag: gb
        languageId: 0
    rootPageId: 1
    websiteTitle: 'Website Title Name'
    

    在这种情况下,您应该使用Web服务器提供的环境变量


    将i.e.AUTHENTICATED设置为auth.webapp.com以外的任何内容的指示符将有助于筛选常见配置条件的基本变量,并确保在那里跳过auth.webapp.com。

    Jo的回答起到了作用。我在这里发布了更多信息来帮助其他人

    ==============
    .htaccess file
    ==============
    
    <If "%{HTTP_HOST} != 'unique\.domain\.com'">
      SetEnv SPECIALNAME_ALLOW allow
    </If>
    <If "%{HTTP_HOST} == 'unique\.domain\.com'">
      SetEnv SPECIALNAME_ALLOW skip
    </If>
    
    
    ==============
    Typo3 SITE entry for the unique domain
    ==============
    Entry Point -   https://unique.domain.com/
    Variant Base - https://unique.domain.com/
    Variant Condition - getenv("SPECIALNAME_ALLOW ") == "skip"
    
    
    ==============
    Typo3 SITE entry for everything else
    ==============
    Entry Point -   /
    Variant Base - /
    Variant Condition - getenv("SPECIALNAME_ALLOW ") == "allow"
    
    ==============
    .htaccess文件
    ==============
    SetEnv特殊名称\u允许
    SetEnv SPECIALNAME\u允许跳过
    ==============
    唯一域的Typo3站点条目
    ==============
    入口点-https://unique.domain.com/
    变异碱基-https://unique.domain.com/
    变量条件-getenv(“特殊名称允许”)=“跳过”
    ==============
    输入其他所有内容的网站条目
    ==============
    入口点-/
    变异碱基-/
    变量条件-getenv(“特殊名称允许”)=“允许”
    
    太棒了!这是一种享受。非常感谢你,乔。:-)
    AUTHENTICATION SITE - just auth.webapp.com
    
    base: 'https://auth.webapp.com/'
    flux_content_types: ''
    flux_page_templates: ''
    languages:
      -
        title: English
        enabled: true
        base: /
        typo3Language: default
        locale: en_GB.UTF-8
        iso-639-1: en
        websiteTitle: ''
        navigationTitle: ''
        hreflang: ''
        direction: ''
        flag: gb-eng
        languageId: 0
    rootPageId: 11
    websiteTitle: 'Website Title'
    
    ==============
    .htaccess file
    ==============
    
    <If "%{HTTP_HOST} != 'unique\.domain\.com'">
      SetEnv SPECIALNAME_ALLOW allow
    </If>
    <If "%{HTTP_HOST} == 'unique\.domain\.com'">
      SetEnv SPECIALNAME_ALLOW skip
    </If>
    
    
    ==============
    Typo3 SITE entry for the unique domain
    ==============
    Entry Point -   https://unique.domain.com/
    Variant Base - https://unique.domain.com/
    Variant Condition - getenv("SPECIALNAME_ALLOW ") == "skip"
    
    
    ==============
    Typo3 SITE entry for everything else
    ==============
    Entry Point -   /
    Variant Base - /
    Variant Condition - getenv("SPECIALNAME_ALLOW ") == "allow"