Apache2 サブドメインのランダム文字列を生成する方法

Apache2 サブドメインのランダム文字列を生成する方法

受け取るリクエストごとに、ランダムに生成された新しいサブドメイン名へのリダイレクトを発行したいと考えています。以下に、vhost の設定を示します。ランダムな英数字の文字列を含むサブドメインへのリダイレクトを実行したいと考えています。クライアントの日時 + IP などの基本的なものであれば問題ありません。フィンガープリントを作成するだけでよく、複雑である必要はありません。スクリプトを使用してこれを生成し、リクエストごとに vhost にプラグインする方法はありますか。ランダムな文字列のオプションが使用可能な既存のファイルや、何らかの正規表現はありますか。

<VirtualHost *:443>
    ServerName mysite.com
            Redirect 302 / https://<randomstring>.mysite.com/
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
            SSLEngine on
            SSLCertificateFile      /etc/apache2/ssl/site.cert
            SSLCertificateKeyFile /etc/apache2/ssl/site.key
</VirtualHost>

私のOSはUbuntu 20.04です

答え1

Redirectディレクティブは固定の URL を想定しています。そのため、これは機能しません。

最も簡単な方法は、mod_rewriteを使用してすべてのリクエストをスクリプトにリダイレクトし、スクリプトを次のようにすることです。redirect.php適切な RANDOM 関数にアクセスできる PHP スクリプトは、ランダムなリダイレクトを生成します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /redirect.php [L]

私の知る限り、mod_rewrite を使用してランダムなリダイレクトを直接生成することは不可能であり、ランダム関数は提供されていません。

回避策:アクティブ化ユニークID かなり良いランダム環境変数にアクセスできるようになります。

それから:

RewriteEngine On
RewriteRule . http://%{UNIQUE_ID}.example.com [R]

関連情報