Realurl重写,无需扩展名

问题描述

我正在使用一个运行带有Realurl扩展名的TYPO3 6.2的网站。

在树中,我创建了一个ID为66的“汽车”页面,并以“汽车/”作为口述URL路径段。我的页面现已可用于https://www.mywebsite.com/cars/。很好。

如果继续进行https://www.mywebsite.com/cars/audi,我需要的是将audi作为Typoscript中的GET变量(GP:car_brand)检索,但是当前的Typo3认行为是搜索{{1} }页面(位于现有audi页面的下面...,然后显示404错误

我已经尝试过的:

1 /在.htaccess中添加一个RewriteRule:cars。它可以工作,但是用户重定向RewriteRule ^cars/(.*)$ /index.PHP?id=66&car_brand=/$1 [P],我们确实需要保留https://www.mywebsite.com/cars/?car_brand=audi URL方案,该方案更符合SEO要求/对用户友好。

2 /在我的realurl_conf.PHP postvarSets中添加自定义配置,但是realurl很难理解,我没有处理它的技术技能:

cars/audi/

解决方法

要添加userFunc,请在此处查看:

https://github.com/dmitryd/typo3-realurl/wiki/Configuration-reference#userfunc

在realurl_conf.php中:

'postVarSets' => array(
    '66' => array(
        'brand' => array(
            array(
                'GETvar' => 'car_brand','userFunc' => 'Vendor\Userfuncs\Example->myExampleFunction','noMatch' => 'bypass',),

在您的课堂上:

namespace Vendor\Userfuncs;
class Example {
    function myExampleFunction($params,$ref) {
        if ($params["decodeAlias"]) {
            return ($decodedAlias));
        } else {
            return ($encodedAlias));
        }
    }
}
,

也许您可以尝试这样的事情:

'postVarSets' => array(
    '66' => array(
        'brand' => array(
            array(
                'GETvar' => 'car_brand',

因此URL看起来像这样

https://www.mywebsite.com/cars/brand/audi

也许还有一个fixedPostVars解决方案来避免'brand'段,但是在这种情况下,必须始终设置get参数'?car_brand = xxx',所以我认为不可能只设置{{3 }}

或者另一种解决方案是使用 userFunc ,然后您可以自行管理URL编码/解码。

弗洛里安