Apache2如何為子域產生隨機字串

Apache2如何為子域產生隨機字串

我想為收到的每個請求發出重定向到新的隨機生成的子網域的請求。您可以在下面找到我的虛擬主機配置。我想重定向到包含一些隨機字母數字字串的子域。如果它是像客戶端的日期時間+IP 之類的基本內容就可以了,我只需要做一些指紋識別,它不必更複雜。有沒有一種方法可以透過一些腳本產生它,並將其插入到每個請求的虛擬主機中,即具有隨機字串或某種正則表達式的可用選項的現有文件?

<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>

我的作業系統是ubuntu 20.04

答案1

Redirect指令需要一個固定的 URL。所以那是行不通的。

最簡單的可能是使用 mod_rewrite 將所有請求重新導向到腳本,然後讓您的腳本,例如redirect.phpPHP 腳本可以存取適當的 RANDOM 函數,產生隨機重定向。

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

使用 mod_rewrite 直接產生隨機重定向是不可能的,沒有提供隨機函數。

可能的解決方法:激活mod_unique_id 並且您可以存取非常好的隨機環境變數。

然後:

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

相關內容