Unslash
Unslash is a Crystal HTTP handler that removes slashes (/
) at the end of URLs, performing a redirect to the unslashed version of the same URL.
This, among others, improves SEO by avoiding duplicated content across the different versions of the same URL.
Installation
-
Add the dependency to your
shard.yml
:dependencies: unslash: github: GrottoPress/unslash
-
Run
shards update
-
Require Unslash:
# ... require "unslash" # ...
Usage
Pass an instance of Unslash::Handler
to the web server. If using a web framework, this handler should be passed before the framework's route handler:
# ...
require "http/server"
require "unslash"
server = HTTP::Server.new([
# If `safe` is `true`, only `GET` and `HEAD` request methods
# are handled.
Unslash::Handler.new(status_code: 308, safe: false),
# ...
])
server.bind_tcp("127.0.0.1", 8080)
server.listen
# ...
Development
Run tests with crystal spec
.
Contributing
- Fork it
- Switch to the
master
branch:git checkout master
- Create your feature branch:
git checkout -b my-new-feature
- Make your changes, updating changelog and documentation as appropriate.
- Commit your changes:
git commit
- Push to the branch:
git push origin my-new-feature
- Submit a new Pull Request against the
GrottoPress:master
branch.