代码之家  ›  专栏  ›  技术社区  ›  josias

打字错误3:带有tx_新闻的Realurl重复斜杠-已解决但未理解

  •  1
  • josias  · 技术社区  · 6 年前

    我只是在使用tx_新闻上的官方realurl配置 documentation .这导致我的url中出现了重复的斜杠。看起来是这样的:

    领域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 回复  |  直到 6 年前
        1
  •  2
  •   Andrei Todorut    6 年前

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

    让我们看第一个 REALURL 从你的帖子中选择配置。在此配置中,我希望我的URL是: /page/action/controller/post-title .

    这里发生的事情是,你有新闻插件 action controller 在post页面中设置参数,然后您不会通过 行动 控制器 URL 这就是为什么你 double slashes 那里,因为 行动 控制器 都是空的。

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