繁体   English   中英

具有GET参数的RealURL

[英]RealURL with GET parameters

我们开发了一个typo3插件来搜索卡车。 出于SEO的原因,我们正在尝试使用realURL插件使URL更加易于使用。

在首页上,我们有多个调用操作,这些操作链接到具有某些搜索参数的搜索页面。 下面是一个例子:

/search-results/?tx_fds_searchresults[type_name]=Trailer

此链接按预期方式工作。 结果页面上是指向列表页面的链接,其中包含更多详细信息。 下面是一个例子:

/listing/?tx_fds_listing[id]=119870

此链接不起作用。 不会在传递给插件控制器的参数中填充tx_fds_listing[id]

最初,我们认为这可能是配置问题,但在其他页面上却没有出现。 该ID不是数据库对象,而可以是文本字符串。

编辑:

我应该补充一点,在关闭RealURL的情况下可以正常工作。

我们得到的id为$id = $this->request->getArgument('id');

编辑2:这是日志中的错误消息。 [ALERT] request="28233e225150a" component="TYPO3.CMS.Frontend.ContentObject.Exception.ProductionExceptionHandler": Oops, an error occurred! Code: 201512141630381db91bba - {"exception":"exception 'TYPO3\\\\CMS\\\\Extbase\\\\Mvc\\\\Exception\\\\NoSuchArgumentException' with message 'An argument \\"id\\" does not exist for this request.'

我也尝试将变量重命名为name,但是那也不起作用。

我有一个解决问题的根本原因的解决方案,即使不是特定问题。

因此,我不得不向realurl_conf.php文件添加其他映射。 例如,获取商品编号:

$config['domain.com']['postVarSets'][3]['stock'] = array(array('GETvar' => 'tx_fds_listing[id]'));

这样就形成了有效的URL:

/listing/stock/119870

这是该插件的预期用法,所以这是一个很好的结果。 我还添加了ajax和pdf的配置。 这需要对打字稿进行不明显的修改。

PDF TS:

pdf = PAGE
pdf {
    typeNum = 300
    10 = USER_INT
    10 {
        userFunc      = TYPO3\CMS\Extbase\Core\Bootstrap->run
        #vendorName    = TYPO3
        extensionName = Fds
        pluginName = Listing

        #controller = FDS
        controller = Tx_Fds_Controller_FDSController
        #action = listingPdf
        switchableControllerActions.FDS.1 = listingPdf


    }
    config {
        disableAllHeaderCode = 1
        additionalHeaders = Content-type:application/pdf
        xhtml_cleaning = 0
        admPanel = 0
    }
}

PDF RealURL配置:

$config['domain.com']['postVarSets'][3]['pdf'] = array('type' => 'single', 'keyValues' => array ('type' => 300));

PDF有效网址:

/listing/pdf/stock/119870

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM