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

3.7k 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
match 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
abhijith n raj 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>