私のteampeakサブドメインがts3プロトコルに直接リダイレクトされるようにサブドメインのルールを作成したいと思います。
それでは、例を示します。
RewriteCond %{HTTP_HOST} ^(ts\.)?example\.com$ [NC]
RewriteRule ^(.*)$ ts3://example.com/$1 [R=301,L]
残念ながら、この方法は機能しません(無限ループが発生します)。
正直言って、私は.htaccessの経験がありません。どんな姿でなければなりませんか?いくつかの他の例を試しましたが、ほとんどはディレクトリに書き換えるか、別のドメインにリダイレクトするため、例はありません。
私は努力することができますか?
ベストアンサー1
長い話を短く .htaccess
これは設計されておらず、TS3は複数のプロトコル関連の理由でApacheのHTTPトラフィックを理解できません。最善の解決策は、ドメインのDNS設定にts.example.com
エイリアスを作成し、クライアントにTeamspeak接続ポートがある場所に接続するように要求することです。example.com
ts.example.com:x
x
.htaccess
このファイルはApache Webサーバーで使用されます。 HTTP トラフィックを処理するシステムの一部です。 Teamspeak 3はHTTPサーバーではないため、HTTPトラフィックを理解できません。したがって、ファイルを使用してHTTPトラフィックをTS3にリダイレクトすることは.htaccess
(正しいアプローチであると仮定して)あまり意味がありません。 TS3 は HTTP 要求を理解できないため、要求を削除します。
Teamspeakサービスはアドレスではなくポートに関連付けられます。を使用すると、netstat
実際にポートを見つけることができます。私はTeamspeakを知りませんが、ポート9987と10011について聞いたことがあります... TS3設定を確認する必要があります:)
ts.example.com
すべてをからリダイレクトするには、このように機能するexample.com
ようにドメイン名を設定することをお勧めします。指定されたts.example.com
別名の場合、そのexample.com
別名に送信されたすべての要求がts.example.com:9987
到着しますexample.com:9987
。この構成は通常、特権ネームサーバーによって処理され、変更を適用するにはDNSゾーン管理にアクセスできる必要があります。
今リダイレクトみんな特に、ts.example.com
ポート9987のトラフィックはより複雑で非生産的です。 Teamspeakは複数のポート(クエリ、音声データ、ファイル転送...)を使用します。すべてを9987に送信すると、クエリとファイル転送が受信されず、初期接続が機能しなくなる可能性があります。また、クライアントは名前を確認した後にIP経由で接続するts.example.com
ため、コンピュータからの着信トラフィックを区別することはできません。example.com
HTTPサーバー(またはプロキシ)は実際にHTTPヘッダーを使用して区別できますが、Host
ここで処理する必要があるプロトコル関連の問題がたくさんあります。
- HTTPは接続ベースなので、トラフィックはTCPからUDPに移動する必要があります(タワーこんにちは!)。
Host:
TS3バイナリデータのみを残すようにヘッダーを削除する必要があります。もちろん、テキストとバイナリデータを混在させるのは悪い考えです。- プロキシはまた、ファイル転送とTS3クエリで音声データを区別することができなければならず、そのようなプロキシは存在しないと確信しています。
- ...