【问题标题】:htaccess seamlessly redirect to subfolderhtaccess 无缝重定向到子文件夹
【发布时间】:2015-02-02 04:50:04
【问题描述】:

我有一个由一个 CMS 安装提供支持的多语言网站。相关语言由 URI 触发,因此 domain.com/pt 显示葡萄牙语而 domain.com/en 英语。

但我希望拥有两个不同的域,因此 portuguese.com 显示 domain.com/pt 下的珍贵内容,english.com 显示 domain.com/en 下的内容。

我已经将两个域关联到同一个帐户,但在现阶段它们不会真正影响语言。因此,english.com/pt 将显示网站的葡萄牙语版本,而 portuguese.com/en 将显示英文版本。

我如何编辑我的 htaccess 以便english.com 在服务器端同时充当 portuguese.com/en 和 english.com/en 但用户看到 .english.com? portuguese.com 也是如此。

这是我当前的代码:

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{HTTP_HOST} ^english\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.english\.com$
RewriteRule ^/?$ "http\:\/\/www\.english\.com\/en\/" [R=301,L]

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

提前感谢您的帮助!

我尝试了很多我在网上找到的代码,但它们似乎都不起作用!

【问题讨论】:

  • 您当前的 .htaccess 代码在哪里?
  • 我已经在上面更新了。干杯

标签: apache .htaccess mod-rewrite redirect


【解决方案1】:

在您当前的规则下方添加这 2 条规则:

RewriteCond %{HTTP_HOST} ^(www\.)?portuguese\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((?!pt/).*) /pt/$1 [L,NC]

RewriteCond %{HTTP_HOST} ^(www\.)?english\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((?!en/).*) /en/$1 [L,NC]

【讨论】:

    猜你喜欢
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2015-10-06
    • 1970-01-01
    • 2019-03-03
    • 2011-02-12
    相关资源
    最近更新 更多