複数のドメインでYourlsを使用する方法を探していましたが、主な問題は、Yourls を構成するときに config.php ファイル (YOURLS_SITE 定数) でドメイン名を指定する必要があることです。Yourls を指す実際の複数のドメインで 1 つのドメインのみを構成すると、予期しない動作が発生します。
私は周りを見回しましたが、これのための簡単なハックを見つけることができませんでした
複数のドメインでYourlsを使用する方法を探していましたが、主な問題は、Yourls を構成するときに config.php ファイル (YOURLS_SITE 定数) でドメイン名を指定する必要があることです。Yourls を指す実際の複数のドメインで 1 つのドメインのみを構成すると、予期しない動作が発生します。
私は周りを見回しましたが、これのための簡単なハックを見つけることができませんでした
config.phpでこの行を使用します ...
define('YOURLS_SITE', 'http://' . $_SERVER['HTTP_HOST'] . '');
(/サブディレクトリまたはそれが該当する場合は何でも追加することに注意してください)
次に、Apache ホストの構成が正しい限り、このディレクトリを指すドメインまたはサブドメインが機能します。ただし、リダイレクトはどのドメインでも機能するため、domain.one /redirect == domain.two/redirectに注意してください。
私はこの手っ取り早い解決策を見つけ、誰かにとって役立つかもしれないと考えました。
config.php ファイルで、定数の定義を $_SERVER['HTTP_HOST'] の値に基づくように変更しました。このヘッダーを設定するサーバーの前にプロキシがあるため、これは機能します。仮想ホストを定義することもできますApache サーバーと同じように動作するはずです (おそらく、代わりに $_SERVER['SERVER_NAME'] を使用する必要があります)。
だからconfig.phpで私は変更しました:
define( 'YOURLS_SITE', 'http://domain1.com');
に
if (strpos($_SERVER['HTTP_HOST'],'domain2.com') !== false) {
define( 'YOURLS_SITE', 'http://domain2.com/YourlsDir');
/* domain2 doesn't use HTTPS */
$_SERVER['HTTPS']='off';
} else {
define( 'YOURLS_SITE', 'https://domain1/YourlsDir');
/* domain1 always uses HTTPS */
$_SERVER['HTTPS']='on';
}
注 1: Yourls が html ルートにある場合は、URL から /YourlsDir を削除できます 注 2: YOURLS_SITE の URL は / で終わってはいけません
うまくいけば、これは他の誰かを助けるでしょう