【问题标题】:Redirect with apache使用 apache 重定向
【发布时间】:2011-08-16 20:05:29
【问题描述】:

我有一个包含大约 2000 个链接的网站,以及具有完全相同页面的其他网站。

我需要知道如何在 apache 中执行从一个域到另一个域的重定向,考虑到 .com 之后两个站点上的页面将是相同的

示例 用户要求: www.mydomain.com/product1

应该重定向 www.mydomain2.com/product1

应该是301重定向

感谢您的帮助

【问题讨论】:

    标签: apache .htaccess magento


    【解决方案1】:

    这可以通过 mod_rewrite 轻松完成:

    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    
    # redirect all requests to www.domain2.com domain
    RewriteCond %{HTTP_HOST} =www.domain.com
    RewriteRule .* http://www.domain2.com%{REQUEST_URI} [R=301,L]
    

    这将放置在 www.mydomain.com 的网站根文件夹(或虚拟主机上下文)中的 .htaccess 中。这还假设 www.mydomain.comwww.mydomain2.com 位于不同服务器/虚拟主机上(换句话说,不指向同一个物理文件夹)。

    【讨论】:

    • 实际上两个域都托管在同一个物理文件夹上,因为它是 Magento 安装,这将如何改变上述解决方案?
    • @Luis 我又添加了 1 行——它只会在通过www.domain.com 请求 URL 时发出重定向。您应该立即提到如此重要的细微差别,否则任何重定向规则都会进行无限重定向,因为两个域都使用相同的 .htaccess 和重写规则。
    • 我这样做了,但是没有用,它是一个 magento 站点,两个域都在同一台服务器上,同一个物理文件夹。知道吗??
    • @Luis 许多可能的事情:1)mod_rewrite 是否有效? 2)也许检查域名拼写 3)检查规则顺序——这种规则应该在最上面,因为一些特定的规则可能会阻止所有后续规则的执行。 4) 子文件夹中的 .htaccess 可能会阻止执行来自父 .htaccess 的重写规则。
    【解决方案2】:

    我一直在我的公司这样做。如果您知道如何使用mod_rewrite,请转至RewriteEngine on 并使用带有[R] 标志的RewriteRule

    RewriteRule www.mydomain.com/product1 www.mydomain2.com/product1 [L,R]
    

    See this site.

    【讨论】:

    • 我无法为 2000 页重写规则,我想应该有更简单的正则表达式方法。
    猜你喜欢
    • 1970-01-01
    • 2012-05-13
    • 2013-06-30
    • 2023-03-18
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多