【问题标题】:Is it possible to URL mask a domain name with a different one using mod_rewrite?是否可以使用 mod_rewrite 用不同的域名对域名进行 URL 屏蔽?
【发布时间】:2011-08-08 19:05:13
【问题描述】:

这里是场景-

我有一个网站,客户的网站在我的名下运行。

例如,我的域是www.mainsite.com,客户的网站是www.customer1.com --- 但是当有人访问customer1.com 时,index.html 文件会将他们重定向到我在www.mainsite.com/customers/index.jsp?number=1000 下的网站.

带有重定向到我的网站的 index.html 示例:

<html>
<head>
<META HTTP-EQUIV=REFRESH CONTENT="0;URL=http://www.mainsite.com/customers/index.jsp?number1000">    
</head>
</html>

是否可以使用 mod_rewrite 添加一个重写指令,该指令将采用客户的域,例如 www.customer1.com 并且不仅使用名为 "number" 的变量将其重定向到我的站点,而且还屏蔽之后访问的其余页面?

这样浏览该网站的任何人都会觉得他们在customer1.com“静止”,而不是看到mainsite.com


编辑

客户的网站/域与我自己的网站托管在同一个 vps 上。我的网站是建立在 JSP 页面上的。


【问题讨论】:

    标签: url mod-rewrite url-rewriting masking url-masking


    【解决方案1】:

    没有使用mod_rewrite,但是有mod_proxy,它可以做你想做的事情(你需要启用和加载模块,默认配置中没有启用它):

    <VirtualHost *:80>
      ServerName yoursite.example.com
      ProxyPass / http://maskedsite.example.net/
      ProxyPassReverse / http://maskedsite.example.net/
    </VirtualHost>
    

    请注意,1) 这会使所有“被屏蔽”的流量看起来都来自您的主机(而不是用户的主机),并且 2) 被屏蔽主机上的任何负载都将通过您的主机。

    参见例如更多详细信息:http://www.apachetutor.org/admin/reverseproxies

    【讨论】:

    • 由于客户的域名和我自己的网站一起托管在我的 vps 上,我还会使用 mod_proxy 吗?我认为 mod_rewrite 可以处理这个。
    【解决方案2】:

    为什么你不使用 jsp:forward> 而不是 mod_rewrite ?

    【讨论】:

    • 假设服务器可以使用 Java Server Pages,也就是说(大多数 Apache 服务器默认没有这个,IIRC)。
    • 我写这个是因为我看到了 index.jsp,我以为他在使用 Java Server Pages
    • 我的网站是建立在 JSP 页面上的——所以是的,我启用了 JavaServerPages。但我想在客户的域上显示 STATIC index.html(不是 DYNAMIC .jsp)页面----因为搜索机器人(不想在这里改变主题)会查看静态内容,而不是动态的。
    • @Cristian:啊哈,不错,没注意到。但是,您链接的文档说“目标文件可以是 HTML 文件、另一个 JSP 文件或 servlet,只要它与转发 JSP 文件位于相同的应用程序上下文中。”(强调我的)——这适用吗? (我不知道)
    • 问题 - 真的会为用户会话的每个请求在地址栏中保留客户的域吗?
    猜你喜欢
    • 2017-10-03
    • 2011-08-02
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2015-02-23
    • 2012-08-28
    • 1970-01-01
    • 2019-09-20
    相关资源
    最近更新 更多