Software

CMS | without database

Motto: KISS


CMSimple_XH

Easy-to-use CMS without Database

CMSimple_XH, a Flat-File CMS like its predecessor CMSimple, does not need a database and stores the content of the website in a single text file. The administrative effort is minimal. If something is changed on the website content, CMSimple_XH automatically creates a complete backup with a time stamp when the administrator logs off. Just as easily, any backup can be selected and restored. You can download these backup files to your local computer using an FTP client such as FileZilla.
General information about CMSimple_XH

Expandability through Plug-ins

CMSimple_XH is a lean CMS according to the KISS principle.
That means: simple handling, no dispensable functions!
But what is dispensable for one is indispensable for another.
Functions that do not exist, such as a user administration, can simply be added as a software module (“plug-in”). Plug-in developers also offer free solutions for many other purposes.
I present my absolute favourite (Moved_XH) on this page.
Official plug-in repository of CMSimple_XH

Customisable Design Templates

A design template is the façade of your website, gives it “a face”, so to speak. It should be as distinctive and attractive as possible so as not to bore or frighten your visitors. If you don't want to hire a web designer right away, choose one from the wide range of ready-made design templates that comes as close as possible to your ideas and adapt it to your taste.

If your skills in CSS, HTML and PHP are limited, you will find many help pages on the web. You can also get help in the CMSimple forum.

New templates are usually presented by their developers in the forum, some even before their official completion for testing and contributing one's own ideas.
Official template repository of CMSimple_XH

Friendly User Community (Forum)

Anyone who then needs help or has good ideas themselves is welcome to join the community of CMSimple_XH users and participate in the forum. Patient forum members will quickly be found who will offer friendly advice and code. Optimisations for the CMS are also discussed together in the forum. It is a very helpful and friendly community and those who like can actively help. Those who can't program, test new plug-ins and templates or write a manual or update a chapter of the wiki or proofread? Translation into other languages is also very welcome. And everything is voluntary, because that's the only way to enjoy doing it.

System Requirements

  • Web server: Apache or IIS or NGINX
  • PHP: Vers. 5.3.7, 8.0 upwards strongly recommended
    (many plug-ins only run with newer versions), 7.x brings significant speed advantages!
  • Support for PHP version 8.3

Download CMSimple_XH and get started

Pros

  • Design principle: KISS (keep it simple, stupid – or: keep it simple, secure)
  • Flat-File CMS (content stored in a file, no disadvantages of a database)
  • after each change to the content, a backup with a timestamp is created when logging out
  • restoring to any existing backup is as easy as the backup itself
  • short familiarisation period
  • lean, high-performance system enables the shortest possible page loading times
  • suitable for large websites with hundreds of web pages
  • all disadvantages mentioned below can be avoided with a little bit know-how

Cons

  • no language folder provided for main language, e.g.: https://example.tld/en/
  • no multi-domain support (e.g., domain names matching to the language)
  • no Clean URL, but query strings (e.g.: https://example.tld/en/?page-name)

Conclusion

CMSimple_XH has very low system requirements and is very easy to use. I have tried out almost all flat-file CMSs over the years and none has pleased me as much as CMSimple_XH.

With basic knowledge of CSS, HTML and PHP, you can also adapt this CMS to your own special wishes. For example, I have language folders for German and English like the well-known large websites and the domain names match the language. Web addresses are loaded even without the question mark that is actually required (URLs consist of query strings).

Since I was able to bypass all the disadvantages and the CMS is regularly maintained, I find it highly recommendable!

Proven Plug-ins

I will describe other very useful plug-ins later.
Now I start with my favourite plugin …

Moved_XH

Version: 1.0 | Copyright © Christoph M. Becker
Download Moved_XH from GitHub

As the name suggests, this plug-in supports you in forwarding moved or relocated websites. This makes it ideal for changing systems from other CMSs to CMSimple_XH!
Even if you change the menu structure of your web presence created with CMSimple_XH, this makes forwarding web pages very easy.

What the developer describes only briefly and modestly does not even hint at what an ingenious tool he has created!

I have been using “Moved_XH” since it was first released in 2013 and have never experienced any serious errors.
Errors found were only my own occasionally incorrectly set redirection rules, which were easy to locate after patient searching and showed me more and more how powerful this tool is!

Of course, you have to work very carefully when setting page redirects and then check thoroughly whether everything really works properly.
Otherwise, you might create new problems for yourself and maybe parts of the website will be no longer accessible.

Dealing with “regular expressions” made easy

This ingenious extension makes dealing with “regular expressions” (regex for short) sensationally easy.
Writing redirection rules for the .htaccess file (Apache web server, mod_rewrite) is not easy. And redirection rules for query strings, which CMSimple_XH uses excessively, are too complicated for beginners.
With Moved_XH, writing complicated redirection rules becomes an entertaining puzzle game for beginners with a high success rate. Smiley

Moved_XH translates Simple Language into Regular Expressions

So that the description doesn't get too complicated, I'll keep it short:
Instead of concrete paths and page names, placeholders can be used and parts of real page names can be combined with placeholders.
This saves hundreds to thousands of lines of an otherwise necessary list of moved pages.

No Delay in normal Operation

This plug-in becomes active at page requests for non-existent web addresses only. When normally “Error 404” would be displayed to the visitor, Moved_XH starts its job in the background and uses a moved.txt file with your redirect rules to check whether a redirect is stored for the requested page. If the redirection does not require several steps, there is no perceptible delay.

Practical Application (Examples)

If you want to move a small website with a few pages to CMSimple_XH, you can put a list in your .htaccess file according to Schema:

Redirect 301 /old-path/ https://domain.tld/new-path

or when moving the entire website to a CMSimple_XH website:

Redirect 301 / https://domain.tld/

But if your old website has hundreds of pages and thousands of URL variants come in as requests, such a list becomes huge.
You can capitulate and ditch the many requests with old URLs with an error 404 page or give up altogether as an error 410 page.

But the requests with old URLs come anyway. So why not automatically rewrite these requests and redirect them to the new web address?
Advantage: Your visitors get the information they want and the search engines learn the new address when they are redirected.
The many thousands of wrong requests become fewer week by week and your web server does not have to keep thousands of lines of routing information ready.

After moving pages within a CMSimple_XH website, better use Moved_XH. For pages with subpages, two lines of code are required to avoid infinite loops that could be triggered by typing errors of the visitor or stupid search engine bots:

old-page/*=new-page/$1
old-page=new-page

If this old page with subpage(s) is itself also a subpage or could be incorrectly queried as such, store the above two lines in the following form:

*old-page/*=new-page/$2
*old-page=new-page

Four examples of sub-pages without further sub-pages:

*new*=https://domain.tld/en/?new$2
*sub-page*=main-page/sub-page$2
*sub*page*=main-page/sub-page$3

anbieterkenn*ung=impressum

Here, the last asterisk only serves to intercept similar page names; e.g. “sub-pages” instead of “sub-page” or “news” instead of “new”. In the third example, the middle of three asterisks is used to serve pages with or without a hyphen and with or without an additional syllable in the word.
The fourth example uses this for alternative terms from official German: Anbieterkennzeichnung or Anbieterkennung = Impressum (legal notice).

Keyword list: 2013, Advantages, CMS, CMSimple_XH, CSS, Clean URL, Client, Computer, Conclusion, Cons, Database, Disadvantages, Domain, Download, FTP, FTP Client, FTP client, FileZilla, Flat-File CMS, HTML, HTTPS, Help, IT, PHP, Pros, Search Engine, Server, Software, TLD, URL, Update, User, Web Addresses, Website, Who, how, very useful, why

Last edited: