Apache 301重定向区域设置

时间:2018-07-18 17:22:38

标签: apache redirect

我们的网站有4种语言/地区。

domain.com/en、domain.com/es、domain.com/fr、domain.com/pt

最初,营销小组希望用户访问domain.com并对其进行屏蔽,使其在浏览器中看起来像domain.com。他们不想看到domain.com/cn。此外,他们希望用户能够访问domain.com/water并屏蔽该URL,使其看起来像domain.com/water。其他语言都可以。

在详细了解SEO之后,我们意识到应该将301重定向到domain.com/en/water,这样看来我们在domain.com/water和domain.com/en/上都没有重复的内容水。营销组现在可以很好地显示“ en”。 :)

问题是,我们有很多现有规则,这使(我)感到困惑。

这是我们希望工作的方式:

  1. domain.com应该301重定向到domain.com/en,而不是domain.com/en /
  2. 不需要重定向domain.com/es、domain.com/fr、domain.com/pt。这些是不同语言的主页。
  3. 如果有人访问domain.com/water,则301重定向到domain.com/en/water
  4. 请记住,如果该网址包含domain.com/es/sample、domain.com/fr/sample、domain.com/pt示例,则无需重定向。

这是我们现有的规则。

我们尝试在下面的现有规则中添加一些新行(此刻我没有这些方便的行),但这导致URL中包含许多/ en /,例如domain.com/en/en/en/en/en/en/sample。任何帮助将不胜感激。

Include conf/mktg_redirs.conf

RewriteRule ^/cas/.* - [L]
RewriteRule ^/cs/.* - [L]

RewriteCond %{REQUEST_URI} !^/en/.+ 
RewriteCond %{REQUEST_URI} !^/fr/.+  
RewriteCond %{REQUEST_URI} !^/pt/.+
RewriteCond %{REQUEST_URI} !^/es/.+
RewriteCond %{REQUEST_URI} !^/en$
RewriteCond %{REQUEST_URI} !^/fr$
RewriteCond %{REQUEST_URI} !^/pt$
RewriteCond %{REQUEST_URI} !^/es$
RewriteCond %{REQUEST_URI} !^/cs/.*
RewriteCond %{REQUEST_URI} !^/cas/.*
RewriteRule ^(.*)$ /en$1

# This cleans up the adding of the default / for the bare URI (www.domain.com with nothing after)
RewriteRule ^/en/$ /en

0 个答案:

没有答案