【问题标题】:How to mod rewrite domain but keep evertything after the domain intact如何修改重写域但保持域后的所有内容不变
【发布时间】:2014-05-09 16:19:57
【问题描述】:

我有两个不同的域。让我们称它们为 domain1 和 domain2。

我需要重写:

www.domain1.com/some/stuff/after-domain

这样就变成了:

www.domain2.com/some/stuff/after-domain

基本上,域之后的所有内容都应该保持不变。唯一的区别应该是更改域名。谁能帮我改写规则。我已经尝试了以下方法,但它不适合我。

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^domain2.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www.domain2.com$
  RewriteRule ^(.*)$ http://www.domain1.com/$1 [R=301,L]
</IfModule>

另外,请注意,{REQUEST_URI} 和 {REQUEST_FILENAME} 不适用于此应用程序。

一如既往地提前感谢您。

编辑: 根据对更多信息的请求,我在使用上述规则时得到的结果: http://www.domain1.comhttp//www.domain1.com/some/stuff/after-domain

另外,我忘记指定我希望 domain1 出现在地址栏 URL 中,但基于 domain2 拉取内容(这甚至可能吗?)

【问题讨论】:

  • 不工作是什么意思?它会给出错误吗?它只是什么都不做吗? AllowOverride 是否在 apache 配置中启用?需要更多信息。
  • 根据您的要求更新

标签: apache .htaccess mod-rewrite


【解决方案1】:

我假设您希望将所有内容重定向到一个域的一般情况,这样您就不需要指定所有可能的排列:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain1.com$
RewriteRule ^(.*)$ http://www.domain1.com$1

这应该可以实现我认为您正在尝试做的事情。

【讨论】:

  • 感谢您的帮助。不幸的是,您的解决方案在 .com 和 some/stuff/after-domain 之间缺少一个“/”。另外,我忘记指定我希望 domain1 出现在地址栏 URL 中,但基于 domain2 拉取内容。
【解决方案2】:

以下内容应该适合您:

RewriteEngine On
Redirect 301 / http://www.domain2.com/

它应该重定向:www.domain1.com/some/stuff/after-domain -> www.domain2.com/some/stuff/after-domain

【讨论】:

  • 感谢您的帮助。不幸的是,我没有指定我希望 domain1 保留在地址栏中。
  • 你能再试一次吗(你可能需要重新尝试一下)。它将我的网址更改为新域
  • 是的,抱歉,我希望旧的域 url 保留在地址栏中。但加载基于新域的内容。
  • 据我所知,htaccess 无法做到这一点。您可以使用 iframe,但无论您访问 www.domain2.com 上的哪个页面,网址都只会显示 www.domain1.com
猜你喜欢
  • 1970-01-01
  • 2011-08-27
  • 2015-09-05
  • 2016-06-10
  • 2013-09-28
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多