从域名指针重写为子域名

3

我有一个域名(www.example.com)和一个子域名(test.example.com)。

我还有一个指向www.example.com的域名指针(www.pointer.com)。

我想要做的是,任何在浏览器中键入www.pointer.com的人都能看到test.example.com。

<rule name="CanonicalHostNameRule1" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="www.pointer.com" />
                    </conditions>
                        <action type="Rewrite" url="test.example.com" />
                    </rule>
        </rules>

但是这只会把我带到一个HTTP错误404.0 - 未找到页面

有没有办法解决这个问题?

这是在运行PHP的IIS(Windows)上进行的。


这是什么软件?我不认识那个配置。 - Daniel Scott
这是在服务器的web.config文件中。 - Allen
是的,但运行的是什么服务器软件?它不是apache,也不像tomcat。 - Daniel Scott
Windows 上运行 php。 - Allen
我这么认为。它在everleap.com的服务器上。 - Allen
显示剩余2条评论
1个回答

1
你需要将操作类型更改为Redirect。Rewrite仅会在服务器上调用不同的资源,但不会更改浏览器中的URL。除此之外,你的规则看起来很好。

我使用了重写,因为我希望用户能看到他们仍然在pointer.com网站上。我知道重定向可以解决问题,但那不是我想要的。这不可能吗? - Allen
test.example.com是一个不同的网站吗?如果是,那么这是可能的,但您需要使用应用程序请求路由(ARR)模块,请参见此处的场景:http://nicolas.guelpa.me/blog/2015/02/21/rewrite-redirect-iis.html#rewrite-outside-websites - Jeroen
“example”域是服务器的A记录。域指针是我拥有的另一个域。如果需要在服务器上安装应用程序,恐怕不可能,因为Everleap(托管服务器)不喜欢这样做。 - Allen
ARR不是一个独立的应用程序,而是像重写模块本身一样的IIS扩展。我不熟悉everleap,但从这篇帖子中看来,它们支持ARR。http://forum.everleap.com/threads/disabling-arrs-instance-affinity-in-windows-azure-web-sites.132/ - Jeroen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,