typo3: расширение realurl - проблема с конфигурацией, включить фрагмент пути в URL

Предположим, у меня есть веб-сайт www.mywebsite.com. Мой интерфейс typo3 v4.7 расположен, скажем, по адресу

www.mywebsite.com/cms/index.php

, а серверная часть находится по адресу www.mywebsite.com/cms/typo3/.

Как настроить «дружественные» URL-адреса, которые генерирует расширение realurl, таким образом, чтобы URL-адреса отображались следующим образом:

www.mywebsite.com/cms/index.php?id=45

to

www.mywebsite.com/cms/something

Я хочу использовать функцию автоконфигурации realurl.

Вот как выглядит файл автоконфигурации:

<?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']=array (
  '_DEFAULT' => 
  array (
    'init' => 
    array (
      'enableCHashCache' => true,
      'appendMissingSlash' => 'ifNotFile,redirect',
      'adminJumpToBackend' => true,
      'enableUrlDecodeCache' => true,
      'enableUrlEncodeCache' => true,
      'emptyUrlReturnValue' => '/cms/',
    ),
    'pagePath' => 
    array (
      'type' => 'user',
      'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
      'spaceCharacter' => '-',
      'languageGetVar' => 'L',
      'rootpage_id' => '13',
    ),
    'fileName' => 
    array (
      'defaultToHTMLsuffixOnPrev' => 0,
      'acceptHTMLsuffix' => 1,
      'index' => 
      array (
        'print' => 
        array (
          'keyValues' => 
          array (
            'type' => 98,
          ),
        ),
      ),
    ),
  ),
);
?>

Я не могу это сделать. На этом сайте больше виртуальных хостов. Я не хочу создавать новый выделенный виртуальный хост только для этой установки type3.

В настоящее время редиректы не работают. Есть общий с "Страница... не найдена на этом сервере". сообщение об ошибке, выдаваемое Apache.

<IfModule mod_rewrite.c>

        RewriteEngine on
        #RewriteBase /cms/
       RewriteRule ^/cms/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)(/.*)?$ - [L]
</IfModule> 

person knb    schedule 28.06.2013    source источник


Ответы (2)


Просто совет: вместо того, чтобы использовать TYPO3 в подпапке, гораздо удобнее поместить его в поддомен, например cms.mydomain.com. В таком случае вам не потребуется дополнительная перенастройка, а все элементы будут работать как обычный домен.

person biesior    schedule 28.06.2013

Я думаю, что ваша проблема в настоящее время не имеет ничего общего с RealURL и его конфигурацией. У вас проблема с конфигурацией mod_rewrite. Начните с оригинального, поставляемого с TYPO3, потому что в опубликованном вами фрагменте отсутствуют важные правила. Попробуйте установить RewriteBase, но если это не сработает, отключите его.

Обратите внимание, что на самом деле это последнее правило (RewriteRule .* index.php [L]), которое вызывает TYPO3 и заставляет его обрабатывать запрос, чего сейчас явно не происходит.

<IfModule mod_rewrite.c>

# Enable URL rewriting
RewriteEngine On

# Change this path, if your TYPO3 installation is located in a subdirectory of the website root.
RewriteBase /cms/

# Rule for versioned static files, configured through:
# - $TYPO3_CONF_VARS['BE']['versionNumberInFilename']
# - $TYPO3_CONF_VARS['FE']['versionNumberInFilename']
# IMPORTANT: This rule has to be the very first RewriteCond in order to work!
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ $1.$3 [L]

# Stop rewrite processing, if we are in the typo3/ directory.
# For httpd.conf, use this line instead of the next one:
# RewriteRule ^/TYPO3root/(typo3/|t3lib/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) - [L]
RewriteRule ^(typo3/|t3lib/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) - [L]

# Redirect http://example.com/typo3 to http://example.com/typo3/index_re.php and stop the rewrite processing.
# For httpd.conf, use this line instead of the next one:
# RewriteRule ^/TYPO3root/typo3$ /TYPO3root/typo3/index.php [L]
RewriteRule ^typo3$ typo3/index_re.php [L]

# If the file/symlink/directory does not exist => Redirect to index.php.
# For httpd.conf, you need to prefix each '%{REQUEST_FILENAME}' with '%{DOCUMENT_ROOT}'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

# Main URL rewriting.
# For httpd.conf, use this line instead of the next one:
# RewriteRule .* /TYPO3root/index.php [L]
RewriteRule .* index.php [L]

</IfModule>
person tmt    schedule 28.06.2013