我有一个我在自己的服务器上托管的Web应用程序。我有客户端按原样使用该应用程序,但有些人询问他们是否可以在自己的服务器上“托管”该应用程序。这使他们拥有自己的URL而不是我的URL。该应用程序仅构成其网站的一部分,因此我假设我的服务器无法响应对其域名的直接调用等。
举一些例子,我目前有网址www.mydomain.com/profile
,www.mydomain.com/index.php?option=someoption&view=someview&id=1
我的客户想要的是www.theirdomian.com/profile
,www.theirdomian.com/index.php?option=someoption&view=someview&id=1
等
我的问题是,允许他们在我的应用程序中使用自己的URL,而不给他们所有后端源代码和数据库安装在他们的服务器上,最好的方法是什么?
我真的不想让他们“托管”我的申请。但是确实想让他们使用自己的URL,而不必修改我服务器上的任何内容。
我认为的一种方法是创建一个位于其服务器上的router.php文件。当在客户端站点上单击链接时,路由器接收请求并修改URL以从我的服务器等获取数据。路由它们通过调用URL将html源输出回客户端站点。
这是实现我想要的有效方式,还是远远不够。
答案 0 :(得分:1)
这可能太高级了,但是......
你能不能创建一些他们可以利用的基本API,这将使他们可以自由地使用它们,同时你可以保持对它的行为的控制。
API只需要cURL和一些简单的XML
有很多方法可以达到你想要的效果,包括mod_rewrite规则。
答案 1 :(得分:0)
首先,您网站中的链接不应该是硬编码的。如果你到处都有硬编码www.mydomain.com/...
...祝你好运。您应该使用相对于服务器根目录的URL,例如:
<a href="/profile">
为了获得更大的灵活性,请使用帮助程序创建相对于运行应用程序的URL而不是硬编码任何URL。如果已完成,则使用不同的域名访问同一站点所需要做的就是配置Web服务器,使其接受域名请求并设置theirdomain.com
的DNS条目以指向您的服务器。
如果这不是一个选项,那么运行theirdomain.com
的人应该运行一个反向代理,在其域名下为您的域提供服务。
答案 2 :(得分:0)
OK!
假设您有一个托管在http://www.mydomain.com/listener.php
的PHP文件接收后期数据
$Data = file_get_contents("php://input");
此示例中的发布数据是XML
<Myapp>
<method="InitFunction"/>
<User id="1234"/>
</Myapp>
此处发布的数据是从PHP文件(即您的API)提供的 只是从客户端输入读取数据(因为API在客户端服务器上)
API使用cURL发布到您的文件,即http://www.mydomain.com/listener.php
根据所发生的情况,您可以回复,即将响应打印或回复给API。
检查php.net网站在cURL上的用法 - 使用
非常简单