TYPO3:使用tx_news重复斜杠 - 已解决但未被理解

时间:2018-06-01 17:34:03

标签: php typo3 tx-news realurl

我只是在tx_news documentation上使用官方的realurl conf。这导致我的网址中出现重复的斜杠。它看起来像那样:

domain.com/post//post-title

为了解决这个问题,我发现我必须在fixedPostVars中的tx_newspil [news]之后删除或放置以下行:

在:

'fixedPostVars' => [
    'newsDetailConfiguration' => [
        [
            'GETvar' => 'tx_news_pi1[action]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ],
        [
            'GETvar' => 'tx_news_pi1[controller]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ],
        [
            'GETvar' => 'tx_news_pi1[news]',
            'lookUpTable' => [
                'table' => 'tx_news_domain_model_news',
                'id_field' => 'uid',
                'alias_field' => 'IF(path_segment!="",path_segment,title)',
                'addWhereClause' => ' AND NOT deleted',
                'useUniqueCache' => 1,
                'languageGetVar' => 'L',
                'languageExceptionUids' => '',
                'languageField' => 'sys_language_uid',
                'transOrigPointerField' => 'l10n_parent',
                'expireDays' => 180,
                'enable404forInvalidAlias' => true
            ]
        ]
    ]
]

后:

'fixedPostVars' => [
    'newsDetailConfiguration' => [
        [
            'GETvar' => 'tx_news_pi1[news]',
            'lookUpTable' => [
                'table' => 'tx_news_domain_model_news',
                'id_field' => 'uid',
                'alias_field' => 'IF(path_segment!="",path_segment,title)',
                'addWhereClause' => ' AND NOT deleted',
                'useUniqueCache' => 1,
                'languageGetVar' => 'L',
                'languageExceptionUids' => '',
                'languageField' => 'sys_language_uid',
                'transOrigPointerField' => 'l10n_parent',
                'expireDays' => 180,
                'enable404forInvalidAlias' => true
            ]
        ],
        [
            'GETvar' => 'tx_news_pi1[action]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ],
        [
            'GETvar' => 'tx_news_pi1[controller]',
            'valueMap' => [
                '' => 'detail',
            ],
            'noMatch' => 'bypass'
        ]
    ]
]

切换它们或只是删除控制器/动作部分修复了重复的斜杠。现在我想明白为什么会这样,因为我是PHP初学者,我真的不懂。

我感谢所有的帮助!

**刚刚测试过,只有动作部分必须移动或删除才能解决重复的斜杠

1 个答案:

答案 0 :(得分:2)

这是因为REALURL配置按您添加的顺序获取参数。

让我们从您的帖子中获取第一个REALURL配置。在此配置中,我希望我的网址为:/page/action/controller/post-title

如果您在帖子页面设置了actioncontroller参数的新闻插件,那么您将无法通过action和{{1在controller中,这就是为什么URL存在double slashes,因为actioncontroller是空的。

  

默认参数(e.q控制器名称,操作名称等),不需要值的参数必须位于配置的末尾,就像上次配置一样。