0

win-32.msi と win-64.msi の 2 つのバージョン セットアップ パッケージを作成し、ユーザーがダウンロードできるように Web サイトに配置します。

しかし、私は 1 つの Web リンクを使用したいだけです。Windows 32 ビット OS を使用しているユーザーがリンクをクリックすると、win-32.msi が取得され、Windows 64 ビット OS を使用すると win-64.msi が取得されます。

Web コードで php、js、html を使用し、Apache で設定します。

以前に使用したメソッドがありました: browsercap.ini. しかし、win8-64bit の IE10 ブラウザが間違った win8-32bit 情報を提供することがわかりました。

それで、他の解決策はありますか?

4

2 に答える 2

1

Javascript では、navigatorオブジェクトを使用して、ローカル システムに関する情報を取得できます。

console.log(navigator.appVersion);    

私のシステムでは、次の結果が得られます。

5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/30.0.1599.69 Safari/537.36

次に、これを解析して、ユーザーをどこに送信するかを判断できます。

于 2013-10-16T06:05:05.457 に答える
1

Apache別の方法として、変数を使用mod_rewriteして見ることで、これを行うこともできHTTP_USER_AGENTます。これに関する詳細は、mod_rewriteのドキュメントを参照してください。

このようなものはうまくいくかもしれません:

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (WOW64|OtherMatch)
RewriteRule ^(/path/to/dl-packages)/win-32.msi $1/win-64.msi [R,L]

これは基本的な概念を示すためのものであり、すべての Windows 64 ビット ブラウザーに一致する(WOW64|OtherMatch)かどうかわからない、64 ビット クライアントに一致する文字列を微調整する必要がある場合があります。また、デフォルトのパッケージとなる私のパッケージにWOW64一致させています.64ビットクライアントがそれを取得しようとすると、代わりに64ビットバージョンにリダイレクトされます. サイトによっては、これを別の方法で処理したい場合があります。URLwin-32.msiRewriteRule

于 2013-10-16T07:05:17.237 に答える