我有一个多语言的Modx站点。我正在尝试为该URL进行重定向
https://example.com/fi/
至
https://example.com/fi/something
但我只想重定向“子文件夹”的根目录,而不是“www.example.com“或其他任何文件夹下的任何example.com/fi/products。
当前的htaccess文件如下所示
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteBase /
#Check for Fi
RewriteCond %{HTTP_HOST} .*example.com [NC]
RewriteCond %{HTTP:Accept-Language} ^fi [NC]
RewriteRule ^$ http://%{HTTP_HOST}/fi/ [L,R=301]
# Default to En
RewriteCond %{HTTP_HOST} .*example.com [NC]
RewriteRule ^$ https://%{HTTP_HOST}/en/ [L,R=301]
# Fix current links
RewriteCond %{HTTP_HOST} example.com [NC]
RewriteCond %{REQUEST_URI} !/en
RewriteCond %{REQUEST_URI} !/fi
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /en/$1 [L]
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
如果我试图
RedirectMatch 301 /fi /fi/something
最后URL中出现了/fi/something的无限循环
1条答案
按热度按时间z4bn682m1#
重写循环的存在是因为你的目标URL
/fi/something
显然再次与你的模式/fi
匹配...实际上,您根本不想在这里使用
RedirectMatch
,而是使用一个简单的RewriteRule
:您希望将该规则添加到现有配置文件中注解
# Fix current links
的上方。