This is Pico's official file prefixes plugin to drop file prefixes from page URLs.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Pico File Prefixes

This is the repository of Pico's official file prefixes plugin.

Pico is a stupidly simple, blazing fast, flat file CMS. See for more info.

PicoFilePrefixes removes file prefixes (e.g. date identifiers) from page URLs. For example, the blog article content/blog/ normally corresponds to the page URL, however, by installing this plugin, the article will be accessible through the much more user-friendly URL This makes organizing your website's pages on the filesystem easier than ever before.


You can either install PicoFilePrefixes using Composer, or using a single PHP plugin file. We recommend you to use Composer whenever possible, because it allows you to keep the plugin up-to-date way more easily.

If you use a Composer-based installation of Pico and want to either remove or install PicoFilePrefixes, simply open a shell on your server and navigate to Pico's install directory (e.g. /var/www/html/pico/). Run composer remove phrozenbyte/pico-file-prefixes to remove PicoFilePrefixes, or run composer require phrozenbyte/pico-file-prefixes (via to install PicoFilePrefixes.

If you really want to install PicoFilePrefixes using a single PHP plugin file, download the latest release and upload the PicoFilePrefixes.php file to the plugins directory of your Pico installation (e.g. /var/www/html/pico/plugins/).

PicoFilePrefixes requires Pico 2.0+


The plugin recursively drops file prefixes of all files in the content/blog/ directory by default. You can specify other directories by altering the PicoFilePrefixes.recursiveDirs and/or PicoFilePrefixes.dirs config variables (both expect YAML lists) in your config/config.php. The former parses all files of a directory recursively (i.e. including all its subfolders), whereas the latter parses just files in this particular directory. The default configuration looks like the following:

    - blog
  dirs: []

If you want to additionally enable the plugin for the content/showcase/ directory, try the following configuration:

    - blog
    - showcase
  dirs: []

If you want to enable the plugin for any folder, try the following:

    - .
  dirs: []

To enable the plugin for pages in the content/misc/ directory only (i.e. not including subfolders like content/misc/sub/), try the following:

  recursiveDirs: []
    - misc