2016-03-22 8 views
2

Я использую лак 4 перед apache. Мне нужны запросы, сделанные для deutsh.de, исходящие из заголовков с предпочтительным языком es или ca (кроме случаев, когда он также имеет de или en) для перенаправления на spanish.es. Может ли кто-нибудь предоставить мне соответствующий синтаксис? СпасибоПереадресация лака на основе настроек языка браузера

ответ

2

Так мне удалось собрать кое-что в файле используется для запуска лака:

sub vcl_recv { 
     if((req.http.Accept-Language !~ "de" || req.http.Accept-Language !~ "en") && (req.http.Accept-Language ~ "es" || req.http.Accept-Language ~ "ca" || req.http.Accept-Language ~ "eu")) 
     { 
     return(synth(301,"Moved Permanently")); 
     } 
} 

sub vcl_synth { 
     if(req.http.Accept-Language ~ "es" || req.http.Accept-Language ~ "ca" || req.http.Accept-Language ~ "eu") 
     { 
     set resp.http.Location = "http://spanish.es"; 
     return (deliver); 
} 
} 

... Это, кажется, работает

+0

Ваше заявление, если в vcl_recv в настоящее время содержит и между 2 OR без каких-либо скобок. Это вызывает странное поведение. его лучше всего использовать 'если (req.http.Accept-Language! = "Де" && req.http.Accept-Language ~ = "EN") { }' вы можете установить переменную, может использоваться для определения перенаправления в synth sub vcl_recv {' if (req.http.Accept-Language! =" de "&& req.http.Accept-Language ~ =" en ") { set req. http.redirectTo = "es"; возврата (синт (302, "Временно перемещено");}} суб vcl_synth { если (req.http.redirectTo == "эс") { множество resp.http.Location = "HTTP: // испанский. es "; возвращение (доставка) }}' –

 Смежные вопросы

  • Нет связанных вопросов^_^