我有的:
- 安装了两种语言:德语和英语
- 语言版本通过子文件夹(www.domain.com/de/ 和 www.domain.com/en/)进行管理
- 机器:安装了 Typo3 4.5.4 / RealUrl
- mod_rewrite 启用了一个作品
我想做的事:
- 将没有语言子文件夹的请求重定向到德语版本
- 例如 domain.com/any/test/folder/ 到 domain.com/ de /any/test/folder
我尝试了什么:
RedirectMatch permanent ^/(?!(?:(?:de|en)/))(.*)$ /de/$1
出现问题:
- 所有请求都被定向到 domain.com/de/index.php
- 它导致错误 310 (net::ERR_TOO_MANY_REDIRECTS)
- 也许 Typo3 的 htaccess 条目失败了?
我的洞 .htaccess 文件:
# Enable URL rewriting
RewriteEngine On
# Change this path, if your TYPO3 installation is located in a subdirectory of the website root.
# RewriteBase /
# 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.
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.
RewriteRule ^typo3$ typo3/index_re.php [L]
#301 redirection for language mode
RedirectMatch permanent ^/(?!(?:(?:de|en)/))(.*)$ /de/$1
# If the file/symlink/directory does not exist => Redirect to index.php.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Main URL rewriting.
RewriteRule .* index.php [L]
那么,我能做些什么呢?