1

У меня есть веб-сервер, использующий web.py, работающий на lighttpd.

Мой файл lighttpd.conf выглядит следующим образом:

server.modules = ("mod_fastcgi", "mod_rewrite", "mod_compress", "mod_expire", "mod_redirect")
server.document-root = "/home/smiley/british_detail/code/"
server.name = "britishdetail.co.uk"

$HTTP["scheme"] == "http" {
  $HTTP["host"] =~ ".*" {
    url.redirect = (".*" => "https://%0$0")
  }
}

$SERVER["socket"] == ":443" {
  ssl.engine = "enable"
  ssl.pemfile = "/home/smiley/british_detail/certs/server.pem"
  ssl.ca-file = "/home/smiley/british_detail/certs/AddTrustExternalCARoot.crt"

  mimetype.assign = (
    ".html" => "text/html",
    ".css" => "text/css",
    ".jpg" => "image/jpeg",
    ".png" => "image/png",
    ".js"  => "text/javascript"
  )

  expire.url = (
    "/static" => "access plus 7 days"
  )    

  fastcgi.server = ( "/main.py" =>
  ((
    "socket" => "/tmp/fastcgi.socket",
    "bin-path" => "/home/smiley/british_detail/code/main.py",
    "max-procs" => 1
  ))
  )

  compress.cache-dir = "/tmp/lighttpdcompress/"
  compress.filetype = (
    "text/html",
    "text/css",
    "text/javascript"
  )

  url.rewrite-once = (
    "^/favicon.ico$" => "/static/assets/favicon.ico",
    "^/static/(.*)$" => "/static/$1",
    "^/(.*)$" => "/main.py/$1"
  )
}

Проблема у меня заключается в том, что, когда запрос перенаправляется с http-запроса на https-запрос /main.py/, появляется в URL-адресе. Например:http://britishdetail.co.uk => https://britishdetail.co.uk/main.py/ Сайт работает, если вы хотите посмотреть.

Как я могу предотвратить это поведение?

1 ответ1

0

url.rewrite(-once) срабатывает перед url.redirect , поэтому не переписывайте, если хотите перенаправить; например, поместите вашу основную конфигурацию отдельно от перенаправления ("только ssl") в блоке $SERVER["socket"] == ":443" .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .