By default
Middleman
Show archive.org snapshot
generates files with a .html extension. Because of this all your URLs end in /foo.html instead of /foo, which looks a bit old school.
To get prettier URLs, Middleman lets you activate :directory_indexes in config.rb. This makes a directory for each of your pages and puts a single file index.html into it, e.g. /foo/index.html. This lets you access pages with http://domain/foo.
Don't double your requests!
Unfortunately you are now forcing every browser to make two requests for every page. The browser will first request /foo, then the server will return a redirect to /foo/ (mind the trailing slash), then the browser makes a second request to /foo/ to retrieve the actual HTML.
You can probably fix this by configuring your static web server. What we want is:
- Accessing
/fooshould directly return the content of/foo/index.htmlwithout a redirect - Accessing
/foo/should redirect to the canonical/foo.
If you are using Apache, ask your admin to allow the use of .htaccess files. Also ask to get the modules mod_dir and mod_rewrite installed (they probably are already).
Now add a file build/.htaccess with the following content:
DirectorySlash Off
Options -Indexes
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/$1/index.html -f
RewriteRule ^(.+?)/$ /$1 [R=301,L]
RewriteCond %{DOCUMENT_ROOT}/$1/index.html -f
RewriteRule ^(.+?)$ /$1/index.html [L]
Now deploy.