假设我有一个网站www.mywebsite.com。我的typo3 v4.7前端位于,比如说,
www.mywebsite.com/cms/index.php
,后台位于www.mywebsite.com/cms/typo3/。
如何配置realurl扩展生成的“友好”urls,urls的映射方式如下:
www.mywebsite.com/cms/index.php?id=45
至
www.mywebsite.com/cms/something
我想使用realurl的自动配置功能。
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,
),
),
),
),
),
);
?>
我做不到。此网站上有更多虚拟主机。我不想仅仅为这个typ3安装构建一个新的专用虚拟主机。
目前,重定向不起作用。有一个带有“在此服务器上找不到页面...”的泛型。错误- Apache发出的消息。
<IfModule mod_rewrite.c>
RewriteEngine on
#RewriteBase /cms/
RewriteRule ^/cms/(typo3|typo3temp|typo3conf|t3lib|tslib|fileadmin|uploads|showpic\.php)(/.*)?$ - [L]
</IfModule>
发布于 2013-06-28 12:47:46
我认为你的问题目前与RealURL及其配置没有任何关系。您的mod_rewrite配置有问题。从TYPO3附带的原始版本开始,因为您发布的内容缺少关键规则。尝试设置RewriteBase
,但如果它不起作用,请禁用它。
请注意,调用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>
发布于 2013-06-28 13:14:25
小贴士:与其在子文件夹中使用TYPO3,不如将其放到像cms.mydomain.com
这样的子域中。在这种情况下,您不需要额外的重新配置,所有元素都像正常的域一样工作。
https://stackoverflow.com/questions/17364216
复制相似问题