- 18, Oct 2024
- #1
Моя цель — создать собственный код ошибки 404 HTTP, который будет зависеть от языка пользователя. Я думал, что смогу использовать язык принятия заголовка.
Я думал о чем-то вроде этого:
#создаем 2 ACL, которые принимают только один язык.
# Defining HTTP errors http-errors pl_ver errorfile 404 /path/to/file http-errors en_ver errorfile 404 /path/to/file # Setting variable (under frontend section) http-request set-var(txn.lang) req.hdr(Accept-Language) # Feeding with response http-response return status 404 errorfiles pl_ver if { status 404 } { var(txn.lang) pl } http-response return status 404 errorfiles en_ver if { status 404 } { var(txn.lang) en }
#и здесь я хотел бы использовать бэкэнды, зависит от ACL
http-errors pl_ver
errorfile 404 /path/to/file
http-errors en_ver
errorfile 404 /path/to/file
acl en req.fhdr(accept-language),language(en;pl) -m str en
acl pl req.fhdr(accept-language),language(en;pl) -m str pl
http-response status 404 errorfiles pl_ver if { status 404 } { pl }
http-response status 404 errorfiles en_ver if { status 404 } { en }
Есть идеи, как это реализовать?
@first_edit 7.07.2021
Я создал это, используя Самита совет:
use_backend polish404 if pl
use_backend english404 if en
backend polish404
mode http
errorfile 503 /path/to/file
backend english404
mode http
errorfile 503 /path/to/file
У кого-нибудь есть идеи, как это реализовать по-другому?
@второй_edit 24.07.2021
У меня есть лучшая реализация этой проблемы
acl en req.fhdr(accept-language),language(en;pl) -m str en
acl pl req.fhdr(accept-language),language(en;pl) -m str pl
для будущих ищущих вот вам: