【问题标题】:typo3 realurl show only one segment in url错字3 realurl 在 url 中只显示一个段
【发布时间】:2013-05-08 18:37:55
【问题描述】:

我正在处理typo3 中的realurl,并花费数小时研究为什么typo3 在url 中只显示一个片段。

网站结构如下:

我为子页面“munchen-maistrasse”获得的 URL 是:

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

在我的根页面上。我已经用完了解决方案。

【问题讨论】:

  • 检查页面“Referenzen”没有在其页面属性中设置“Exclude from speak URL”。否则,将您的 RealURL 配置发布为您发布的 .htaccess 配置在 URL 生成中不起任何作用。
  • 我已经更改了“Referenzen”子页面的从说话 URL 中排除,但没有发生任何事情,拼写错误仍然显示 url 中的最后一段。这是屏幕截图:i.imgur.com/xQdTcd4.jpg
  • 我不知道你所说的“改变”是什么意思。它应该是未选择的。不过,请检查 Arek van Schayk 的答案。我从未使用过 RealURL 的默认配置,所以我不知道您所指的行为是否是默认配置。如果是这样,那么只需提出您自己的配置就可以了。
  • class.tx_realurl_advanced.php:&tx_realurl_advanced->main 确实可以解决问题,所以你是对的,默认配置不能这样做

标签: url url-rewriting typo3 realurl


【解决方案1】:

您需要自己的配置才能达到此目的。

1) 在Extension Manager -> RealUrl -> Configuration 你必须禁用自动配置并在那里定义你自己的realUrl配置文件的路径。

2) 您应该确保 (page).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);
?>

【讨论】:

  • 我该怎么做#3?我可以从typo3后端做到这一点,还是我需要连接到数据库,然后手动删除它?谢谢你的帮助。
  • 1) 转到Web-&gt;Info 并在页面树中选择您网站的root page。 2)在上面的下拉菜单中选择RealURL management,在页面上出现的第二个下拉菜单中选择深度为inifiteID-to-path mapping。 3) 在显示所有 ID 到路径映射的表中,您可以通过位于表头中的 trash icon 将其删除。 4) Clear all caches 现在应该可以工作了!
  • 我已经完成了所有提到的事情,它仍然是一样的。我已禁用 realurl 自动配置将您的 realurl 配置粘贴到配置文件中,确保将 onfig.tx_realurl_enable 设置为 1 并删除 ID 到路径映射。
  • 页表中的所有realurl选项是否仍然未选中?确保您的 realurl 配置模板已加载。您可以通过放置 die('foo'); 来检查这一点。在配置文件的 PHP 中,然后清除缓存('foo' 应该出现在前端)。
  • 否则你也应该尝试truncate all realurl tables再试一次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 2022-12-18
  • 1970-01-01
  • 2022-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多