lighttpd mod_evhost(www.domain.com / domain.com / sub.domain.com)에 대한 정규식과 일치하는 도메인

StackOverflow https://stackoverflow.com/questions/261904

  •  06-07-2019
  •  | 
  •  

문제

나는 가지고 놀고 있어요 가벼운 소규모 가상 사설 서버에서.서버를 가리키는 두 개의 도메인이 있습니다.Ubuntu 8.10에서 최신 버전의 lighttpd 및 mod_evhost를 사용하고 있습니다.

  1. 누군가가 요청하면 domain.com 또는 www.도메인.com 그들은 다음에서 서비스를 받습니다 /webroot/domain.com/www/

  2. 마찬가지로 누군가 요청하면 하위.도메인.com 그들은 다음에서 서비스를 받습니다 /webroot/domain.com/sub/

  3. 사람들이 요청하면 fake.domain.com (어디 /webroot/domain.com/fake/ 존재하지 않음) 다음에서 제공되기를 바랍니다. /webroot/domain.com/www/

세 번째 요구 사항은 그다지 중요하지 않습니다. 서버 문서 루트에서 제공되는 존재하지 않는 하위 도메인을 요청하는 사람들을 처리할 수 있습니다. /webroot/server.com/www/ 그들이 요청하더라도 fake.domain.com

아래에 lighttpd.conf 파일의 관련 부분을 포함했습니다.

server.document-root = "/webroot/server.com/www/"

// regex to match sub.domain.com
$HTTP["host"] =~ "\b[a-zA-Z]\w*\.\b[a-zA-Z]\w*\.\b[a-zA-Z]\w*" {
    evhost.path-pattern = "/webroot/%0/%3/"    
}

// regex to match domain.com    
$HTTP["host"] =~ "\b[a-zA-Z]\w*\.\b[a-zA-Z]\w*" {
    evhost.path-pattern = "/webroot/%0/www/"    
}

그럼 내가 어디로 잘못 가고 있는 걸까?현재로서는 모든 요청이 *.domain.com 그리고 domain.com 에서 서비스를 받고 있습니다 /webroot/domain.com/www/

여러분이 제공할 수 있는 도움에 감사드리며 관련 내용을 빠뜨린 경우 알려주시기 바랍니다!

건배, 롭

도움이 되었습니까?

해결책

귀하의 정규 표현식이 약간 과장된 것 같습니다.

내가 사용할 것은 다음과 같습니다.

// regex to match sub.domain.com
$HTTP["host"] =~ "^[^.]+\.[^.]+\.[^.]+$" {
    evhost.path-pattern = "/webroot/%0/%3/"    
}

// regex to match domain.com    
$HTTP["host"] =~ "^[^.]+\.[^.]+$" {
    evhost.path-pattern = "/webroot/%0/www/"    
}

어디:

[^.]+ matches anything but a dot, 1..n times

"www"로 대체하여 유효한 하위 도메인만 일치시키려면 다음을 사용할 수 있습니다.

// default: route everything to "www"
$HTTP["host"] =~ "([^.]+\.)?domain\.com$" {
    evhost.path-pattern = "/webroot/%0/www/"
}

// specific regex overwrites "path-pattern" for valid sub-domains only
$HTTP["host"] =~ "^(valid1|valid2|sub)\.domain\.com$" {
    evhost.path-pattern = "/webroot/%0/%3/"    
}

다른 팁

첫 번째 경우에는 일치하는 domain.com 그리고 www.도메인.com: ^\b([wW]{3}\.)?[\w\d]*\.com\b$, 두 번째 경우에는 관심 있는 텍스트 문자열을 식별하기 위한 것이므로 정규식이 하위 도메인/페이지가 존재하는지 확인할 수 있는지 확실하지 않습니다.그것이 당신에게 조금 도움이 되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top