Lamb 0.3.0
Introducing Lamb 0.3.0 - Literally Another Micro Blog. This release brings new features, improvements, and bug fixes, making blogging even easier. The update includes Docker support, an optional config.ini
with support for menu items to customize your installation, improved documentation, and more.
Lamb offers a simple, self-hosted single-author blog with a Twitter-like interface, friction-free Markdown entry, discoverable Atom feed, hashtags support, and a 404 fallback URL feature.
Download the latest release from GitHub and provide your valuable feedback. #lamb #projects
July 28 at 11:43 am
Basic routing using REQUEST_URI
So for nginx it is not straightforward to setup PHP-FPM so that PATH_INFO
is correctly populated. Lamb uses the following /index.php/some/other
type routing, where /some/other
should be the PATH_INFO
. Instead I want to make setup for a variety of web-servers straightforward, so I've switched to the more robust REQUEST_URI
. This simplifies nginx configuration and Caddy and the PHP built-in web-server are compatible.
REQUEST_URI
contains everything after the domain name, including the query string, so that needs to be removed:
$request_uri = '/home';
if ( $_SERVER['REQUEST_URI'] !== '/' ) {
$request_uri = strtok( $_SERVER['REQUEST_URI'], '?' );
}
We can see that for a request for the root of the site, REQUEST_URI
returns /
whereas PATH_INFO
would be empty, so the code above takes that into account. We can then deduct a router action as follows:
$action = strtok( $request_uri, '/' );
Once the $action
is known, it can be checked against an allowed list of actions:
switch ( $action ) {
case 'edit':
...
break;
default:
respond_404();
break;
#php #lamb
March 21 at 12:41 pm
404 Fallback comes to Lamb
I've added a 404 fallback feature to Lamb. What this means is that if you request a URL that doesn't exist on your Lamb instance, it will redirect to the same relative path on the domain you have provided in the configuration, if you enabled this feature.
This means you can move your site from example.com
to say 2023.example.com
and then set that as the 404 fallback url and you will not lose any SEO traffic! Here's an example! #lamb #projects
March 16 at 4:49 pm