【问题标题】:htaccess redirect prefix to a domainhtaccess 将前缀重定向到域
【发布时间】:2018-12-06 22:47:08
【问题描述】:

我做了一个有 2 种语言的网站。每个人都有一个特定的域。我买了它们,它们指向同一个目录(所以它们显示的是同一个站点)。

我很想将每种语言重定向到其特定的域。

我试过了:

RewriteRule ^fr/(.*)$ https://www.french-domain.com/fr/$1 [L,R=301]

RewriteRule ^en/(.*)$ https://www.english-domain.com/en/$1 [L,R=301]

但它会产生循环错误。

有人有想法吗?谢谢。

【问题讨论】:

    标签: .htaccess web redirect


    【解决方案1】:

    您总是在搜索旧 url 和新 url 中都存在的模式,并且由于它们都指向同一个文件夹...您进入无限循环。

    如果你有2个域,那么你可以通过域本身检查,

    这样:

    HTTP_HOST fr.french-domain.com/(.*)
    RewriteRule ^fr.french-domain.com/(.*)$ https://www.french-domain.com/fr/$1 [L,R=301]
    

    我不完全了解域名的样子以及重定向到什么,所以也许你需要稍微改变一下。

    但是如果它对你有用,试试这个并更新,

    【讨论】:

      【解决方案2】:

      您没有使用正确的规则来重定向您的域。您的规则仅重定向以 fren 开头的 Url 路径,即:example.com/fr。要将域重定向到特定文件夹,首先您需要检查HTTP_HOST 标头,然后将该主机重定向到该文件夹​​。

      在您的域指向的目录/.htaccess 中使用以下规则:

      RewriteEngine on
      
      # map fr-example.com to /fr-folder
      RewriteCond %{HTTP_HOST} ^(www\.)?fr-example\.com$ [NC]
      RewriteRule ^.*$ /fr-folder%{REQUEST_URI} [L]
      # map eng-example.com to /eng-folder
      RewriteCond %{HTTP_HOST} ^(www\.)?eng-example\.com$ [NC]
      RewriteRule ^.*$ /eng-folder%{REQUEST_URI} [L]
      

      【讨论】:

        猜你喜欢
        • 2011-08-27
        • 1970-01-01
        • 2016-06-24
        • 2012-11-18
        • 2015-05-19
        • 1970-01-01
        • 1970-01-01
        • 2015-03-30
        相关资源
        最近更新 更多