http.server (SimpleHTTPServer) serve file.html instead of dir (using cmd)

3.6k Views Asked by At

Is it possible to serve not a index of a directory but rather an html file using Python SimpleHTTPServer on path '/'?

Having directory with one file login.html serves a directory index on path '/'.

python -m SimpleHTTPServer 7800

screenshot

I want a content of login.html on '/'.

Is that possible?

2

There are 2 best solutions below

0
On BEST ANSWER

SimpleHTTPServer (or http.server in Python3) will serve a directory unless that directory contains a file called index.html, in which case it will serve that instead.

So just rename login.html to index.html and it should do what you want.

0
On

By default http server looks for index.html file and loads it. Otherwise it will serve the directory structure.

You can extend SimpleHTTPServer and write your own class with proper routing. I would prefer this.

But alternatively you could also add a redirect in index.html.

<html>
<body>
    <!-- redirect on load -->
    <script>
        window.onload = function () {
            window.location.href = "login.html";
        }
    </script>
</body>
</html>