1

バックグラウンド

自分のサーバーでホストしているWebアプリケーションがあります。アプリケーションをそのまま使用するクライアントがいますが、自分のサーバーでアプリケーションを「ホスト」できるかどうかを尋ねるクライアントもいます。これにより、自分のURLではなく独自のURLを持つことができます。アプリケーションはWebサイトの一部を形成するだけなので、サーバーがドメインなどへの直接呼び出しに応答することはできないと思います。

いくつかの例を挙げると、私は現在、「クライアントが欲しいものは何ですか」などのURLを持っていwww.mydomain.com/profileますwww.mydomain.com/index.php?option=someoption&view=someview&id=1www.theirdomian.com/profilewww.theirdomian.com/index.php?option=someoption&view=someview&id=1

質問

私の質問は、サーバーにインストールするすべてのバックエンドソースコードとデータベースを提供せずに、アプリケーションで独自のURLを使用できるようにするための最良の方法は何ですか?

私は彼らが私のアプリケーションを「ホスト」することを本当に許可したくありません。ただし、サーバー上で何も変更せずに、独自のURLを使用できるようにする必要があります。

私が考えた1つの方法は、サーバー上にあるrouter.phpファイルを作成することです。クライアントサイトでリンクがクリックされると、ルーターはリクエストを受信し、URLを変更して、サーバーなどからデータを取得します。ルートは、呼び出し元のURLを介してhtmlソースをクライアントサイトに出力します。

これは私が望むことを達成するための効果的な方法ですか、それともマークから外れていますか。

4

3 に答える 3

1

これはおそらくあなたのニーズにはあまりにも進んでいますが...

彼らが利用できるいくつかの基本的なAPIを作成することはできません。これにより、彼らは独自の方法で自由に利用できるようになり、同時にその動作の制御を維持できます。

APIはcURLといくつかの単純なXMLだけを必要とします

mod_rewriteルールなど、必要なことを実現する方法はたくさんあります。

于 2012-12-12T15:14:53.907 に答える
0

まず第一に、あなたのサイトのリンクはハードコーディングされるべきではありません。どこでもハードコーディングしている場合www.mydomain.com/......そこからそれを取得して頑張ってください。サーバールートに相対的なURLを使用する必要があります。例:

<a href="/profile">

さらに柔軟性を高めるには、URLをハードコーディングする代わりに、アプリの実行元に関連するURLを作成するヘルパーを使用します。それが完了したら、別のドメイン名を使用して同じサイトにアクセスするために必要なのは、ドメイン名の要求を受け入れるようにWebサーバーを構成し、theirdomain.comサーバーを指すDNSエントリを設定することだけです。

それがオプションでない場合、実行している人は、自分のドメインの下でドメインにサービスを提供するリバースプロキシtheirdomain.comを実行する必要があります。

于 2012-12-12T15:15:01.630 に答える
0

わかった!

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での使用を確認してください-使用するのは非常に簡単です

于 2012-12-12T15:39:26.650 に答える