Просмотр полной версии : Исключить сегмент из RealUrl пути
Сейчас на сайте ссылки формируются вида
http://site.ru/project/project/15/
1-й project - это имя страницы
2-й project - это параметр GET (переопределенный с помощью postVarSets
Можно ли ссылки формировать без двойного "project"?
-=UncleByte=-
22.09.2010, 20:26
В свойствах страницы вроде можно отключать участие страницы в "создании ЧПУ" - не подходит?
В свойствах страницы вроде можно отключать участие страницы в "создании ЧПУ" - не подходит?
К сожалению, нет. Видимо, тогда система не поймет что такое project - страница или параметр GET.
Но это точно работало в более старых версиях realurl, когда задавались параметры fixedPostVars. Т.е. вопрос весь возник после обновления realurl
-=UncleByte=-
22.09.2010, 22:13
Ну в конце концов можно просто переименовать сегмент генерируемый в PostVarSets - например сделать чтобы было http://site.tld/project/view/15/
Вообще говоря обновление вызвало у меня проблему с явным указанием части пути для Sysfolder'а - если путь генерировался без него, то все работало, стоило указать явным образом сегмент пути - все ломалось с сообщением про неправильный PostVarSets. Помогло как раз поставить галку на исключение сегмента вовсе - мне даже и понравилось как теперь пути выглядят.
Valery Romanchev
23.09.2010, 02:33
Сейчас на сайте ссылки формируются вида
http://site.ru/project/project/15/
1-й project - это имя страницы
2-й project - это параметр GET (переопределенный с помощью postVarSets
Можно ли ссылки формировать без двойного "project"?
можно, если сделать конфиг реал урла привязанный к uid страницы project
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
'init' => array(
'enableCHashCache' => true,
'enableCHashCache' => 1,
'respectSimulateStaticURLs' => 0,
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1
),
'preVars' => array(
/* 2009-03-29
'0' => array (
'GETvar' => 'no_cache',
'valueMap' => array (
'nc' => '1'
),
'noMatch' => 'bypass'
),
'1' => array(
'GETvar' => 'print',
'valueMap' => array(
'print' => '1',
),
'noMatch' => 'bypass'
),
*/
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'rootpage_id' => 27,
'firstHitPathCache' => 1,
'spaceCharacter' => '-'
),
'fixedPostVars' => array(
'90' => array(
/*
array(
'GETvar' => 'tx_ttnews[pointer]',
'valueMap' => array (
'0' => '',
),
),
array(
'GETvar' => 'tx_ttnews[backPid]',
),
//array(
// 'GETvar' => 'tx_ttnews[cat]',
// ),
*/
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'maxLength' => 80,
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
'addWhereClause' => ' AND NOT deleted',
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent'
),
),
),
'138' => array(
/*
array(
'GETvar' => 'tx_ttnews[pointer]',
'valueMap' => array (
'0' => '',
),
),
array(
'GETvar' => 'tx_ttnews[backPid]',
),
//array(
// 'GETvar' => 'tx_ttnews[cat]',
// ),
*/
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'maxLength' => 80,
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
'addWhereClause' => ' AND NOT deleted',
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent'
),
),
),
'103' => array(
array(
'GETvar' => 'news',
),
),
),
'postVarSets' => array(
'_DEFAULT' => array (
'news' => array(
/* 2009-03-29
array(
'GETvar' => 'tx_ttnews[pointer]',
'valueMap' => array (
'0' => '',
),
),
array(
'GETvar' => 'tx_ttnews[backPid]',
),
//array(
// 'GETvar' => 'tx_ttnews[cat]',
// ),
*/
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'maxLength' => 80,
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
'addWhereClause' => ' AND NOT deleted',
'languageGetVar' => 'L',
'languageExceptionUids' => '',
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l18n_parent'
),
),
),
/*
'print' => array(
array(
'GETvar' => 'print',
'valueMap' => array (
'1' => '',
),
),
),
*/
),
),
'fileName' => array (
'defaultToHTMLsuffixOnPrev' => true,
'index' => array(
'page.html' => array(
'keyValues' => array (
'type' => 1,
)
),
'print.html' => array(
'keyValues' => array (
'type' => 98,
)
),
),
),
);
можно, если сделать конфиг реал урла привязанный к uid страницы project
В общем, так и сделано (для страниц 33 и 34).
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
'init' => array(
'enableCHashCache' => 1,
'appendMissingSlash' => 'ifNotFile',
'enableUrlDecodeCache' => 1,
'enableUrlEncodeCache' => 1,
'respectSimulateStaticURLs' => 0,
'postVarSet_failureMode'=>'redirect_goodUpperDir',
),
'redirects_regex' => array (
),
'fixedPostVars' => array(
'33' => array(
array(
'GETvar' => 'project',
),
),
'34' => array(
array(
'GETvar' => 'project',
),
),
),
'preVars' => array(
array(
'GETvar' => 'no_cache',
'valueMap' => array(
'no_cache' => 1,
),
'noMatch' => 'bypass',
),
array(
'GETvar' => 'L',
'valueMap' => array(
'en' => '1',
),
'noMatch' => 'bypass',
),
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => 7,
'rootpage_id' => 1,
),
'postVarSets' => array(
'_DEFAULT' => array(
// projects parameters
'project' => array(
array(
'GETvar' => 'project' ,
),
),
// news archive parameters
'archive' => array(
array(
'GETvar' => 'tx_ttnews[year]' ,
),
array(
'GETvar' => 'tx_ttnews[month]' ,
'valueMap' => array(
'january' => '01',
'february' => '02',
'march' => '03',
'april' => '04',
'may' => '05',
'june' => '06',
'july' => '07',
'august' => '08',
'september' => '09',
'october' => '10',
'november' => '11',
'december' => '12',
)
),
),
// news pagebrowser
'browse' => array(
array(
'GETvar' => 'tx_ttnews[pointer]',
),
),
// news categories
'select_category' => array (
array(
'GETvar' => 'tx_ttnews[cat]',
),
),
// news articles and searchwords
'article' => array(
array (
'GETvar' => 'tx_ttnews[backPid]',
),
array(
'GETvar' => 'tx_ttnews[tt_news]',
),
array(
'GETvar' => 'tx_ttnews[swords]',
),
),
),
),
'fileName' => array(
'defaultToHTMLsuffixOnPrev'=>0,
'index' => array(
'rss.xml' => array(
'keyValues' => array(
'type' => 100,
),
),
'rss091.xml' => array(
'keyValues' => array(
'type' => 101,
),
),
'rdf.xml' => array(
'keyValues' => array(
'type' => 102,
),
),
'atom.xml' => array(
'keyValues' => array(
'type' => 103,
),
),
),
),
);
Но на последней версии realurl (1.10.0) формируются двойные project.
На версии 1.7.0 все нормально.
То ли конфигурация неправильная. То ли ошибка в realurl. Склоняюсь к первому :)
Ну в конце концов можно просто переименовать сегмент
Конечно, так можно. Но сейчас на сайт ведёт много ссылок с поисковиков и других ресурсов. И если изменить ссылки, то все такие страницы окажутся не найденные. Чего не хотелось бы.
Как альтернатива, сделать переадресацию в .htaccess, но пока хотелось бы проверить иную возможность - исправить ошибки в конфигурации для realurl.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot