【问题标题】:How to 301 redirect an entire domain while preserving the path如何在保留路径的同时 301 重定向整个域
【发布时间】:2012-01-17 01:05:30
【问题描述】:

我正在将一个域重定向到另一个域,但我想保留重定向中的路径。例如,我想访问www.example.com/services/education/page.html,但我的重定向会将他们带到www.new-example.com/services/education/page.html。我应该在我的 .htaccess 文件中写什么来保留路径“/services/education/page.html”?

现在我有:

redirect 301 http://www.example.com/ http://www.new-example.com/

但我不确定这是否有效(由于我正在等待域详细信息等,因此无法测试)。我只是想确定我什么时候让网站上线。这是对的还是我离谱?

谢谢!

【问题讨论】:

  • 您仍然可以在使用现有域获取域详细信息之前进行测试,例如google.com 甚至不存在,因为您只想看到 301 重定向是在您想要的所有情况下发出的,同时保留您的路径。
  • Helicon 有一个 RegexTest 应用程序,可让您测试 .htaccess 条目。它甚至会根据您的输入/测试为您生成规则。

标签: .htaccess redirect


【解决方案1】:

应该这样做:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !new-example.com$ [NC]
RewriteRule ^(.*)$ http://new-example.com/$1 [L,R=301]

【讨论】:

  • 我的 .htaccess 文件中已经包含以下代码(Wordpress): RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !- f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule 。 /index.php [L] 我需要你给我的那 4 行代码吗?或者我是否会遇到两次 RewriteEngine On 的问题(对于 RewriteBase / 相同)
  • 如果前两行已经存在于您的 .htaccess 中,请跳过它们
  • 这些重定向不起作用。我在 .htaccess 中的唯一代码发布在我上面的评论中。它不起作用是有原因的吗?
  • 我什至把我的 .htaccess 文件中的所有代码都拿出来了,只是把你的代码放进去,它仍然不起作用。
【解决方案2】:

尝试将以下内容添加到 example.com 域根目录中的 .htaccess

RewriteEngine On
RewriteBase /

#for all requests to www.example.com
RewriteCond %{HTTP_HOST} ^www\.example\.com$
#redirect them to new-example
RewriteRule (.*) http://www.new-example.com/$1 [R=301,L]

【讨论】:

    【解决方案3】:

    您的原始命令使用 mod_alias Apache 模块,它可以工作,但您可能希望将其更新为:

    Redirect 301 / http://www.new-example.com/
    

    删除当前(旧)域的确切域意味着指向该文件夹的所有域都将被发送到新域,从而使该单行脚本更加健壮。

    其他答案使用mod_rewrite Apache 模块。如果你也安装了它,那很好用,尽管它比 1 行代码多 4 行。此外,mod_alias 是“基本”包的一部分,因此应该在所有 Apache 服务器上,而mod_rewrite 是可选扩展,所以有些可能没有。

    【讨论】:

    • 效果很好。由于不依赖于 mod_rewrite,这似乎是最好的答案。
    • 这会保留路径吗?
    • @JulesColle 是的
    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多