środa, 2 stycznia 2013

PATCH/mod_vhost_alias.c

Poniżasz łątka dodaję dwie nowe funkcjonalności do modułu Apache-a mod_vhost_alias.
SetVirtualDocumentRoot yes|no
SetVirtualSeparator SEPARATOR
Pierwsza umożliwia prawidłowe ustawienie zmiennej środowiskowej DOCUMENT_ROOT dla vhostów tworzonych za pomocą VirtualDocumentRoot. Nie jestem jej autorem. Autora można odszukać tutaj: https://issues.apache.org/bugzilla/show_bug.cgi?id=26052.
Tej funkcjonalności używam już od bardzo, bardzo dawna i nie miałem z nią problemów.

Druga opcja umożliwia zmianę separatora z domyślnej kroki na inny pojedynczy znak. Praktycznie można tego użyć by zmienić kropkę na np. "-". Ta druga opcją jest mojego autorstwa.

Przykład użycia:
VirtualDocumentRoot /storage/home/%3/web/%2/%1/public
SetVirtualDocumentRoot yes
SetVirtualSeparator -
 Która działa dla np. takiego URL-a: http://projekt-klient-user.dev.adres.pl/
Bardziej praktycznie i główny powód istnienia opcji SetVirtualSeparator to  obsługa połączeń https:// dla certyfikatów wilcard (*.example.pl) - czyli zamiast https://projekt.klient.user.dev.adres.pl to otrzymujemy https://projekt-klient-user.dev.adres.pl/ i jeden działający certyfikat dla *.dev.adres.pl).

Patch jest dostępny tutaj: DOWNLOAD

Podobny efekt można uzyskać wykorzystując mod_rewirte. Wybrałem modyfikację mod_vhost_alias ze względu na to, że umożliwiało to wykorzystanie aktualnie działających konfiguracji bez potrzeby przepisywania ich na regułki mod_rewrite.