typo3 realurl показывает только один сегмент в URL

Я работал над realurl в typo3 и часами выяснял, почему typo3 показывает только один сегмент в URL.

структура сайта выглядит так:

введите здесь описание изображения

и URL-адрес, который я получил для подстраницы «munchen-maistrasse»:

http://www.bernd-gruber.at/munchen-maistrasse/

Я хочу, чтобы это было:

http://www.bernd-gruber.at/referenzen/munchen-maistrasse/< /а>

Это файл моего сервера .htaccess:

<FilesMatch "\.(js|css)$">
  <IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 7 days"
  </IfModule>
  FileETag MTime Size
</FilesMatch>

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]
RewriteRule ^(typo3/|t3lib/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) - [L]
RewriteRule ^typo3$ typo3/index_re.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php [L]

</IfModule>

AddType video/x-m4v .m4v
AddType video/ogg .ogv
AddType video/webm .webm
AddType video/x-m4v .m4v
AddType application/ogg .ogg 

Я не использую config.baseURL в типоскрипте, который я использую:

config.absRefPrefix = /
config.prefixLocalAnchors = all

на моей корневой странице. У меня закончились решения.


person strongBAD    schedule 08.05.2013    source источник
comment
Убедитесь, что на странице Referenzen НЕ установлен URL-адрес исключения из разговора в свойствах страницы. В противном случае опубликуйте свою конфигурацию RealURL, поскольку опубликованная вами конфигурация .htaccess не играет никакой роли в создании URL.   -  person tmt    schedule 09.05.2013
comment
Я изменил Исключить из разговорного URL-адреса для подстраницы «Referenzen», но ничего не произошло, опечатка по-прежнему отображает последний сегмент в URL-адресе. Вот скриншот: i.imgur.com/xQdTcd4.jpg   -  person strongBAD    schedule 09.05.2013
comment
Я не знаю, что вы имеете в виду под изменением. Он должен быть НЕ ВЫБРАН. Однако проверьте ответ Арека ван Шайка. Я никогда не использовал конфигурацию RealURL по умолчанию, поэтому я не знаю, является ли поведение, на которое вы ссылаетесь, поведением по умолчанию. Если это так, то просто придумайте свою собственную конфигурацию.   -  person tmt    schedule 09.05.2013
comment
class.tx_realurl_advanced.php:&tx_realurl_advanced-›main делает свое дело, так что вы правы, конфигурация по умолчанию не может этого сделать   -  person Arek van Schaijk    schedule 09.05.2013


Ответы (1)


Для этого вам нужна собственная конфигурация.

1) В Extension Manager -> RealUrl -> Configuration необходимо отключить автоматическую настройку и указать там путь к собственному конфигурационному файлу realUrl.

2) Вы должны убедиться, что (страница).config.tx_realurl_enable = 1 установлена.

3) После создания правильной конфигурации realUrl для вашего веб-сайта вам необходимо обрезать все таблицы кэширования realUrl или просто удалить все ID to Path mappings.

Вот пример стандартного шаблона конфигурации realUrl:

<?php
$realurl_template = array(

    'init' => array(
        'appendMissingSlash'    =>  'ifNotFile,redirect',
        'enableCHashCache'      =>  1,
        'enableUrlDecodeCache'  =>  1,
        'enableUrlEncodeCache'  =>  1,
        'emptyUrlReturnValue'   =>  '/'
    ),

    'preVars' => array(
        array(
            'GETvar'    =>  'no_cache',
            'valueMap'  =>  array(
                'nc'    =>  1,
            ),
            'noMatch'   =>  'bypass',
        ),
    ),

    'fileName' => array(
        'index' => array(

        ),
    ),

    'postVarSets' => array(
        '_DEFAULT' => array (

        ),
    ),

    'pagePath' => array(
        'type' => 'user',
        'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
        'spaceCharacter' => '-',
        'languageGetVar' => 'L',
        'expireDays' => 3,
    )
);

# Configurate domain names
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    '_DEFAULT' => $realurl_template,
    'domain.com' => $realurl_template,
    'www.domain.com' => $realurl_template,
);

$TYPO3_CONF_VARS['EXTCONF']['realurl']['domain.com']['pagePath']['rootpage_id'] = 1;
$TYPO3_CONF_VARS['EXTCONF']['realurl']['www.domain.com']['pagePath']['rootpage_id'] = 1;

# Unset template
unset($realurl_template);
?>
person Arek van Schaijk    schedule 09.05.2013
comment
Как мне сделать №3? Могу ли я сделать это из бэкэнда typo3 или мне нужно подключиться к базе данных и удалить ее вручную? Спасибо за вашу помощь. - person strongBAD; 09.05.2013
comment
1) Перейдите к Web->Info и выберите root page своего веб-сайта в дереве страниц. 2) Выберите в раскрывающемся списке выше RealURL management, а во втором раскрывающемся списке, который появляется на странице, ID-to-path mapping с глубиной inifite. 3) В таблице, в которой показаны все сопоставления идентификаторов и путей, вы можете удалить их с помощью trash icon, расположенного в заголовке таблицы. 4) Clear all caches и теперь должно работать! - person Arek van Schaijk; 09.05.2013
comment
Я сделал все упомянутые вещи, и это все еще то же самое. Я отключил автоматическую настройку realurl, вставил вашу конфигурацию realurl в файл конфигурации, убедился, что для onfig.tx_realurl_enable установлено значение 1, и удалил сопоставления ID с путями. - person strongBAD; 09.05.2013
comment
Все параметры realurl в таблице страниц все еще не отмечены? Убедитесь, что ваш шаблон конфигурации realurl загружен. Вы можете проверить это, поставив кубик ('foo'); в PHP файла конфигурации и после этого очистите кеши (после этого во внешнем интерфейсе должно появиться «foo»). - person Arek van Schaijk; 09.05.2013
comment
В противном случае вам также следует попробовать truncate all realurl tables и повторить попытку. - person Arek van Schaijk; 09.05.2013
comment
Теперь, после транкинга всех таблиц realurl, он наконец работает. Большое спасибо, Арек, я работал над этим несколько дней. Я куплю тебе пива, если ты приедешь в Вроцлав (Польша), ура, приятель! - person strongBAD; 09.05.2013
comment
Нет, спасибо! Теперь вы должны решить свою страницу 404 (см. bernd-gruber.at/unexisting-page). См. Инструмент установки -> Все настройки [pageNotFound_handling]. Заполните там 404 и определите страницу 404 в вашем дереве :) - person Arek van Schaijk; 09.05.2013