View Shtml | Full

Before we look at how to view it, we need to understand what it is.

SHTML stands for Server-Parsed HyperText Markup Language. It is essentially a standard HTML file that contains special commands known as Server-Side Includes (SSI).

In the early days of the web, developers needed a way to make websites dynamic without writing complex CGI scripts. They invented SSI. By naming a file .shtml instead of .html, they told the web server (like Apache or Nginx), "Don't just send this file to the user. Read it first, look for commands, execute them, and then send the result."

Cause: SSI processing is not enabled on the server. The server treats .shtml as plain text or standard HTML. Fix: Enable SSI in your server config: view shtml full

Your local computer will not parse SHTML unless you run a web server with SSI enabled.

For Apache (most common):

For Nginx: Nginx does not natively parse SSI like Apache. You must use the ssi module: Before we look at how to view it,

location / 
    ssi on;
    ssi_types text/shtml;

In the modern era of dynamic JavaScript frameworks (React, Vue, Angular) and server-side languages like PHP and Python, you might stumble upon an unfamiliar file extension while digging through old web servers, legacy intranet portals, or archived projects: .shtml.

When you encounter this file type, a common troubleshooting command or search query emerges: “view shtml full.” But what does this mean? Is it different from viewing regular HTML? And why would you need a "full" view?

This article serves as the ultimate guide to understanding SHTML files, the technical need for viewing their full source code, and step-by-step methods to render or debug them correctly. For Nginx: Nginx does not natively parse SSI like Apache


Sometimes you do not want the rendered output. You want to see the original SSI directives themselves. For example, you want to check if the file contains: <!--#include virtual="/includes/top_nav.shtml" --> Instead of the actual navigation HTML.

The keyword “view shtml full” typically arises from three distinct technical problems. Understanding these will help you troubleshoot effectively.