
受け取るリクエストごとに、ランダムに生成された新しいサブドメイン名へのリダイレクトを発行したいと考えています。以下に、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]