Tak. Możesz to zrobić za pomocą wyrażenia regularnego, aby wyodrębnić adres IP najbardziej w lewo:
SetEnvIf X-Forwarded-For "^(\d{1,3}+\.\d{1,3}+\.\d{1,3}+\.\d{1,3}+).*" XFFCLIENTIP=$1
Zwróć uwagę na użycie $ 1 do ustawienia zmiennej środowiskowej XFFCLIENTIP do przechowywania zawartości pierwszej grupy w wyrażeniu regularnym (w nawiasach). Następnie możesz zdefiniować format dziennika, który korzysta ze zmiennej: ten przykład jest tym, którego używamy wewnętrznie w nearmap.com , więc rejestruje dodatkowe informacje, ale pożądany bit to % {XFFCLIENTIP} e na początku. Zwróć uwagę na env = XFFCLIENTIP na końcu wiersza, co oznacza, że ten format jest używany tylko wtedy, gdy ustawiona jest zmienna środowiskowa.
CustomLog /var/log/apache2/access.log "%{XFFCLIENTIP}e \"%{session}C\" \"%{nearmapuid}C\" %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" env=XFFCLIENTIP