仅在特定域扩展名上重写文件夹的 Cons



我有一个可以通过3个域(domain.com,domain.ch,domain.fr)访问的网站。但是,这三个使用完全相同的文件和文件夹。

关于.fr域(并且仅此域),我需要以下内容:

  1. domain.fr(根)重定向到 domain.com/fr/france

这是通过以下规则实现的:

RewriteCond %{HTTP_HOST} ^www.domain.fr$
RewriteRule ^/?$ "http://www.domain.com/fr/france" [R=301,L]

它有效。(还有一个有效的规则,可以在每个URL前面强制www.。

无法上班的是:

  1. domain.fr/fr重定向到domain.com/fr/france

  2. 最后,将任何domain.fr/fr/*的 URL 重定向到domain.com/fr/*
    (保留 * 代表的任何内容)。

诀窍(对我来说)是相同的.htaccess文件也将出现在 domain.com 和 domain.ch 上,但这些规则不得为这些域激活。

您可以将这些规则放在您的 htaccess 中

# Redirect [www.]domain.fr and [www.]domain.fr/fr to www.domain.com/fr/france
RewriteCond %{HTTP_HOST} ^(www.)?domain.fr$ [NC]
RewriteRule ^(|fr)$ http://www.domain.com/fr/france [R=301,L]
# Redirect domain.fr/fr/* to domain.com/fr/*
RewriteCond %{HTTP_HOST} ^(www.)?domain.fr$ [NC]
RewriteRule ^fr/(.*)$ http://www.domain.com/fr/$1 [R=301,L]

尝试:

RewriteCond %{HTTP_HOST} ^www.domain.fr$
RewriteCond %{REQUEST_URI} !^/fr/france
RewriteRule ^fr/(.*)$ http://www.domain.com/fr/france/$1 [R=301,L]

最新更新