
我想為收到的每個請求發出重定向到新的隨機生成的子網域的請求。您可以在下面找到我的虛擬主機配置。我想重定向到包含一些隨機字母數字字串的子域。如果它是像客戶端的日期時間+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.php
PHP 腳本可以存取適當的 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]