Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lighttpd-向www页面添加规范标题_Lighttpd_Canonical Link - Fatal编程技术网

Lighttpd-向www页面添加规范标题

Lighttpd-向www页面添加规范标题,lighttpd,canonical-link,Lighttpd,Canonical Link,这不是将www重定向到非www的经典方法,而是我想向指向非www页面的所有www请求添加规范头,例如: 请求=>将规范头添加到 我已尝试使用通用重定向,但它看起来不正确,并且没有计算%1/$1 $HTTP["host"] =~ "^www\.(.*)$" { setenv.add-response-header += ( "Link" => "<https://%1/$1>; rel='canonical'" ) } $HTTP[“主机”]=~“^www\(.*)”{ s

这不是将www重定向到非www的经典方法,而是我想向指向非www页面的所有www请求添加规范头,例如:

请求=>将规范头添加到

我已尝试使用通用重定向,但它看起来不正确,并且没有计算%1/$1

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

想法?

lighttpd mod_setenv不是这样工作的。没有描述该语法

此外,lighttpd.conf中处于不同条件的+=块可能不会执行您认为它会执行的操作。+=用于同一条件块中的setenv。一个条件块中只有一个setenv(set)应用于一个请求

综上所述,一个正确的解决方案不使用lighttpd mod_setenv:

在lighttpd中,您可以使用mod_magnet执行几行自定义lua代码。有了它,您可以进行大量的任意更改,包括在匹配lighty.env[“request.uri”]之后设置响应头。

lighttpd mod_setenv不是这样工作的。没有描述该语法

此外,lighttpd.conf中处于不同条件的+=块可能不会执行您认为它会执行的操作。+=用于同一条件块中的setenv。一个条件块中只有一个setenv(set)应用于一个请求

综上所述,一个正确的解决方案不使用lighttpd mod_setenv:

在lighttpd中,您可以使用mod_magnet执行几行自定义lua代码。有了它,您可以进行大量的任意更改,包括在匹配lighty.env[“request.uri”]之后设置响应头。

好的,我选择了mod_magnet/Lua路线,它包括两个简单的步骤

  • 编辑lighttpd.conf以添加mod_magnet模块和一个条件,用于请求的主机具有www
  • 编写简单的canonical.lua文件(请注意,我添加了对www.cn的检查,但这不是必需的,因为该文件仅在主机拥有它时执行!)
  • 函数string.Start(string,Start)
    返回string.sub(string,1,string.len(Start))==Start
    结束
    如果string.start(lighty.request['Host'],“www.”),那么
    lighty.header[“Link”]=“rel=\“canonical”
    结束
    

    好的,我选择了mod_magnet/Lua路线,它包括两个简单的步骤

  • 编辑lighttpd.conf以添加mod_magnet模块和一个条件,用于请求的主机具有www
  • 编写简单的canonical.lua文件(请注意,我添加了对www.cn的检查,但这不是必需的,因为该文件仅在主机拥有它时执行!)
  • 函数string.Start(string,Start)
    返回string.sub(string,1,string.len(Start))==Start
    结束
    如果string.start(lighty.request['Host'],“www.”),那么
    lighty.header[“Link”]=“rel=\“canonical”
    结束
    

    谢谢1.问题中显示的
    +=
    实际上添加了响应标题(但没有计算
    %1/$1
    )。我会看看mod_magnet,我认为这比我希望的要复杂一些。谢谢。1.问题中显示的
    +=
    实际上添加了响应标题(但没有计算
    %1/$1
    )。我将看一看mod_magnet,这比我希望的要复杂一些。感谢您发布您的结果,以便其他人可以参考。感谢您发布您的结果,以便其他人可以参考。
    server.modules = ( mod_magnet, )
    $HTTP["host"] ~= "^www\.(.*)$" {
      magnet.attract-physical-path-to = ( "/path/to/canonical.lua" )
    }
    
    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