.htaccess 在多语言站点的URL中添加语言前缀时如何使用重写条件重定向

.htaccess 在多语言站点的URL中添加语言前缀时如何使用重写条件重定向,.htaccess,mod-rewrite,joomla3.0,.htaccess,Mod Rewrite,Joomla3.0,Iam使用3种语言运行多语言Joomla网站。 我的站点配置为不使用默认语言的语言前缀。 我已决定更改此选项,并使用语言前缀作为我的默认语言 我当前的URL示例如下所示: 默认::mysite.com/forum 中文::mysite.com/en/forum 斯洛伐克语::mysite.com/sk/forum 我希望有这样的URL: 默认::mysite.com/cz/forum 中文::mysite.com/en/forum 斯洛伐克语::mysite.com/sk/forum 我正在努力

Iam使用3种语言运行多语言Joomla网站。 我的站点配置为不使用默认语言的语言前缀。 我已决定更改此选项,并使用语言前缀作为我的默认语言

我当前的URL示例如下所示:

默认::mysite.com/forum 中文::mysite.com/en/forum 斯洛伐克语::mysite.com/sk/forum 我希望有这样的URL:

默认::mysite.com/cz/forum 中文::mysite.com/en/forum 斯洛伐克语::mysite.com/sk/forum 我正在努力弄清楚如何为默认语言设置301重定向。 显然,我不能在斜杠后面重定向所有请求,因为它会重定向所有内容

是否可以在htaccess中使用重写条件来实现我的目标?

您可以使用root.htaccess:


无需在.htaccess中添加任何规则-您可以转到:

yoursite.com/administrator>Plugins>System-Language Filter>Remove URL语言代码:将其设置为No


现在,主默认语言显示为您要求的语言代码

是,但/forum链接只是一个示例。我有100个默认语言/category1/category2等的URL。谢谢你分享这个,但它不适合我。除了cz | en | sk是URI的一部分之外,该规则每次都会创建不定式循环。循环包含如下内容:/usr/www/users/betatn/cz/You copy粘贴此代码,并仅在root.htaccess中使用它?因为它重定向到cz。。。我现在只添加了一个。谢谢你,这很有效!在my.htaccess中还有另一条规则,它来自Joomla.htaccess发行版RewriteCond%{REQUEST_URI}^/index\.php RewriteCond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则。*index.php[L]您的重定向规则是否可以在没有冲突的情况下使用?您的规则没有问题。它们有助于将丢失的页面重定向到索引。谢谢你接受我的回答。。。
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteCond %{REQUEST_URI} !^/(?:cz|en|sk)/
RewriteRule ^([^/]+(/.*)?)$ /cz/$1 [R=301,L]