【问题标题】:Redirect root (and only root) URL to another domain?将根(且仅根)URL 重定向到另一个域?
【发布时间】:2012-05-01 16:00:51
【问题描述】:

我希望将我的域 example.com 和 www.example.com 重定向到 http://example2.com,但我希望保留对我在 http://example.com/sdfhs 的帖子的所有访问,以继续到达他们的目的地。

基本上,我只想重定向根域和 www 域,其余部分保持不变。

如何使用 .htaccess 做到这一点?

【问题讨论】:

    标签: .htaccess redirect dns


    【解决方案1】:

    不知道您是否还有这个问题,但我已经在我的一个域(Yourls 安装)上遇到了这个问题。试试:

    RewriteEngine On
    RewriteRule ^$ http://www.example.com/ [R=301,L]
    

    它适用于我的安装,但请在您的网站上查看。

    【讨论】:

      【解决方案2】:

      为什么不

      RewriteEngine On
      RewriteCond ${HTTP_HOST} example\.com|www\.example\.com
      RewriteRule ^/?$ http://example2.com [L]
      

      【讨论】:

      • 这会将所有域重定向到 example.com。我不认为这是需要的。
      • @JasonMcCreary 对不起,你是对的,我认为这仅适用于他的(虚拟)主机。我已经更新了对 http_host 的测试,我希望我的 re 模式是正确的。
      【解决方案3】:

      通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccessDOCUMENT_ROOT目录下:

      Options +FollowSymLinks -MultiViews
      # Turn mod_rewrite on
      RewriteEngine On
      RewriteBase /
      
      RewriteCond ${HTTP_HOST} ^(www\.)?example\.com$ [NC]
      RewriteRule ^$ http://example2.com [L,R=301]
      

      【讨论】:

        【解决方案4】:

        您可以简单地匹配具有至少 1 个字符 (.+) 的任何 URL,并将其标记为重写引擎查看 [L] 的最后一条规则。 然后将其他任何东西 (.*) 重定向到新域(唯一不匹配的东西就是根)。

        RewriteEngine On
        RewriteRule ^(.+)$ - [L]
        RewriteRule ^(.*)$ http://example2.com/$1 [R=301,L]
        

        【讨论】:

        • 这会将所有域重定向到 example.com。我不认为这是需要的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-26
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多