问题描述
我正在使用一个运行带有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编码/解码。
弗洛里安