简体   繁体   English

typo3:realurl扩展-配置问题,URL中包含路径片段

[英]typo3: realurl extension- configuration issue, include path-fragment in url

Assume I have a website www.mywebsite.com. 假设我有一个网站www.mywebsite.com。 My typo3 v4.7 frontend is located at, say, 我的typo3 v4.7前端位于,例如,

www.mywebsite.com/cms/index.php

, and the backend is located at www.mywebsite.com/cms/typo3/. ,后端位于www.mywebsite.com/cms/typo3/。

How do I configure the "friendly" urls, that the realurl extension generates, in a way that urls are mapped as follows: 如何配置realurl扩展生成的“友好” url,并以如下方式映射url:

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

to

www.mywebsite.com/cms/something

I want to use the autoconfiguration feature of realurl. 我想使用realurl的自动配置功能。

This is how the autoconfig file looks like: 这是autoconfig文件的样子:

<?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,
          ),
        ),
      ),
    ),
  ),
);
?>

I can't get it done. 我做不完 There are more virtual hosts on this website. 该网站上有更多虚拟主机。 I don't want to build a new dedicated virtual host just for this typ3 installation. 我不想仅为此typ3安装构建新的专用虚拟主机。

Currently, redirects do not work. 当前,重定向不起作用。 There is a generic with a "Page ... was not found on this server." 有一个泛型,带有“在此服务器上找不到Page ...”。 error-message issued by Apache. Apache发出的错误消息。

<IfModule mod_rewrite.c>

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

I think your problem has currently nothing to do with RealURL and its configuration. 我认为您的问题目前与RealURL及其配置无关。 You have a problem with mod_rewrite configuration. 您对mod_rewrite配置有问题。 Start with the original one that is shipped with TYPO3 because the bit you posted is missing crucial rules. 从TYPO3附带的原始版本开始,因为您发布的内容缺少关键规则。 Try to set the RewriteBase but if it doesn't work, disable it. 尝试设置RewriteBase但如果不起作用,请禁用它。

Note that it's actually the last rule ( RewriteRule .* index.php [L] ) that invokes TYPO3 and makes it handle the request, which apparently doesn't happen right now. 请注意,实际上这是最后一个调用TYPO3并使其处理请求的规则( RewriteRule .* index.php [L] ),这显然现在还没有发生。

<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>

Just a tip: instead using TYPO3 in subfolder it's much more comfortable to put it into subdomain like cms.mydomain.com . 只是一个提示:与其在子文件夹中使用TYPO3, cms.mydomain.com将它放入cms.mydomain.com子域中,这要舒适cms.mydomain.com In such case you don't need an additional re-configuration, and all elements works as it was normal domain. 在这种情况下,您不需要额外的重新配置,并且所有元素都可以正常使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM