Skip to content

A Crystal HTTP Handler to remove trailing slashes from URLs

License

Notifications You must be signed in to change notification settings

GrottoPress/unslash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  1. Add the dependency to your shard.yml:

    dependencies:
      unslash:
        github: GrottoPress/unslash
  2. Run shards update

  3. 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

  1. Fork it
  2. Switch to the master branch: git checkout master
  3. Create your feature branch: git checkout -b my-new-feature
  4. Make your changes, updating changelog and documentation as appropriate.
  5. Commit your changes: git commit
  6. Push to the branch: git push origin my-new-feature
  7. Submit a new Pull Request against the GrottoPress:master branch.

About

A Crystal HTTP Handler to remove trailing slashes from URLs

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published