Необходимо перевести часть конфига Apache для Lighttpd: С первой частью вроде бы всё понятно:
<Directory "/srv/http">
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]
</Directory>
$HTTP["host"] =~ "^www\.(.*)$" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}
<Directory "/srv/http/public">
Options +Indexes
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
</Directory>
$HTTP["url"] =~ "^/public($|/)" {
dir-listing.activate = "enable"
}
Проблема с rewrite/redirect. Дело в том, что сервер не имеет домена и доступен из интернета по ip и для внуцтренней сети по ip или hostname. Все примеры, которые я смог найти, привязаны к домену.
И в догонку:
<Directory "/srv/http/private">
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
AuthType Basic
AuthName "Access restricted. Please enter login and password."
AuthUserFile "/etc/httpd/conf/htpasswd"
Require user xxx
</Directory>
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/lighttpd/htpasswd"
auth.require = ( "/private" =>
(
"method" => "basic",
"realm" => "Access denied",
"require" => "user=xxx"
)
)
Также интересует вопрос, как включить SSL только для определённой части сайта, например, http://IP/private/ ?