Lighttpd - добавить канонические заголовки к www pages - PullRequest
0 голосов
/ 21 января 2020

Это не classi c redirect www to non- www but, скорее я хотел бы добавить канонические заголовки ко всем www requests, указывающим на non-www page, например:

Запрос на https://www.example.com/index.html => Добавить канонический заголовок к https://example.com/index.html

Я попытался использовать редирект generi c, но он выглядит неправильно и он не оценивает% 1 / $ 1

$HTTP["host"] =~ "^www\.(.*)$" {
  setenv.add-response-header += ( "Link" => "<https://%1/$1>; rel='canonical'" )
}

Мысли?

Ответы [ 2 ]

1 голос
/ 24 января 2020

ОК, поэтому я пошел по маршруту mod_ma gnet / Lua, который включал два простых шага.

  1. Отредактируйте файл lighttpd.conf, добавив в него как модуль mod_ma gnet, так и условный когда запрашиваемый хост имеет www.
server.modules = ( mod_magnet, )
$HTTP["host"] ~= "^www\.(.*)$" {
  magnet.attract-physical-path-to = ( "/path/to/canonical.lua" )
}
Написание простого канонического файла. lua (обратите внимание, что я добавил проверку для www., Но это не обязательно, поскольку файл выполняется только тогда, когда его имеет хост)!
function string.starts(String,Start)
 return string.sub(String,1,string.len(Start))==Start
end

if string.starts(lighty.request['Host'], "www.") then
  lighty.header["Link"] = "<https://"..string.sub(lighty.request['Host'],5)..lighty.env["request.uri"]..">;rel=\"canonical\""
end
1 голос
/ 22 января 2020

Это не так, как работает lighttpd mod_setenv. https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModSetenv не описывает этот синтаксис.

Кроме того, + = в другом блоке условий в lighttpd.conf может не выполнять то, что вы думаете. + = Для setenv в том же блоке условий. Только один setenv (набор) из одного блока условий применяется к запросу.

При этом одно правильное решение не использует lighttpd mod_setenv:

В lighttpd вы можете использовать mod_ma gnet для выполнения нескольких строк пользовательского lua кода. С этим вы можете сделать широкий набор произвольных изменений, включая установку заголовков ответов после сопоставления с lighty.env ["request.uri"].
https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModMagnet

...