【问题标题】:htaccess redirect domain and mask urlhtaccess 重定向域和掩码 url
【发布时间】:2023-03-29 20:51:02
【问题描述】:

我想重定向一个域名:http://www.newdomain.com 到 http://sub.maindomain.com

我已将 .htaccess 编辑为:

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

它重定向但http://sub.maindomain.com 在地址栏中可见。帮助!如何进行掩蔽以使http://www.newdomain.com 可见。谢谢

我还想创建一个子网站 http://sub.newdomain.com 。如何使用 .htaccess 进行操作。

【问题讨论】:

  • www.newdomain.com 和 sub.maindomain.com 是否由同一主机提供服务?
  • @JonLin 不,它们由不同的主机服务。但我认为它是否相同或不同并不重要。
  • 如果您有重定向(R=301 标志或在规则的目标中有http:///https://),那么浏览器将始终在地址栏中显示新 URL。如果它们在 2 个不同的主机上,那么你不能在内部重写,你只能重定向或代理。
  • 有什么办法可以用 php 做到这一点。他们在不同的主机中,我希望显示 'www.newdomain.com' 而不是 'sub.maindomain.com' 。

标签: apache .htaccess redirect dns webserver


【解决方案1】:

如果www.newdomain.com 和sub.maindomain.com 位于不同的主机上,那么在浏览器的URL 地址栏显示www.newdomain.com 时获取sub.maindomain.com 上的内容的唯一方法是从sub.maindomain.com 获取内容代表浏览器。因为就浏览器而言,它正在查看 newdomain 上的内容。

您可以通过使用 apache 或脚本设置代理来做到这一点。使用 apache,您需要访问 www.newdomain.com 域的虚拟主机配置。你可以这样设置:

ProxyPassMatch ^(.*)$ http://sub.maindomain.com$1

查看mod_proxy docs 以获取有关可以传递此指令的标志的更多信息,以调整超时和重试。

如果你想设置一个 php 脚本来代理,你需要将所有请求路由到这个 php 脚本,所以在你的 www.newdomain.com 文档根目录的 htaccess 文件中,添加(假设这个 php 脚本被称为 @987654335 @):

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/proxy.php
RewriteRule ^(.*)$ /proxy.php?url=$1 [L,QSA]

然后在proxy.php 中查找url 查询字符串,加载该页面,并将其输出到浏览器。

如果您可以将两个域都指向同一个主机,这一切都会容易得多。

【讨论】:

猜你喜欢
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
  • 2014-01-16
  • 2021-05-21
  • 1970-01-01
相关资源
最近更新 更多