Apache2 하위 도메인에 대한 임의 문자열을 생성하는 방법

Apache2 하위 도메인에 대한 임의 문자열을 생성하는 방법

요청을 받을 때마다 무작위로 생성된 새로운 하위 도메인 이름으로 리디렉션을 실행하고 싶습니다. 아래에서 내 vhost 구성을 찾을 수 있습니다. 에 임의의 영숫자 문자열이 포함된 하위 도메인으로 리디렉션하고 싶습니다. 클라이언트의 날짜시간+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>

내 OS는 우분투 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를 사용하여 AFAIK가 아닌 임의 리디렉션을 직접 생성하면 임의 기능이 제공되지 않습니다.

가능한 해결 방법: 활성화mod_unique_id 꽤 좋은 임의의 환경 변수에 액세스할 수 있습니다.

그 다음에:

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

관련 정보