Mojolicious::Plugin::Host - Easily get the host for the current request
# Mojolicious::Lite
plugin 'Host';
# Mojolicious
$app->plugin('Host');
# remove www. from all hosts
$app->plugin(Host => { www => 'never' });
# add www. to all hosts
$app->plugin(Host => { www => 'always' });
# provide your own helper name and use different host helpers
$app->plugin(Host => { helper => 'host' }); # default
$app->plugin(Host => { helper => 'www_host', www => 'always' });
$app->plugin(Host => { helper => 'no_www_host', www => 'never' });
my $raw_host = $app->host;
my $www_host = $app->www_host;
my $no_www_host = $app->no_www_host;
Mojolicious::Plugin::Host allows you to easily access the host for the current request. You may use "helper" to change the name of the helper, or "www" to modify the host before it is returned.
$app->plugin(Host => { helper => 'host' }); # default
$app->plugin(Host => { helper => 'www_host', www => 'always' });
$app->plugin(Host => { helper => 'no_www_host', www => 'never' });
# request to mojolicious.org
# contains mojolicious.org
my $host = $app->host;
# contains www.mojolicious.org
my $www_host = $app->host;
# contains mojolicious.org
my $no_www_host = $app->no_www_host;
"helper" allows you to set the name of the helper. This can be useful for clarity or if you want to use multiple "www" options at once.
# ensure a www. is always present at the beginning of a host
$app->plugin(Host => { www => 'always' };
# ensure a www. is never present at the beginning of a host
$app->plugin(Host => { www => 'never' };
# pass the host through unaltered
$app->plugin('Host');
The "www" option allows you to specify how you would like a leading www.
to be handled
before being returned. There are three options:
# ensure a www. is always present at the beginning of a host
$app->plugin(Host => { www => 'always' };
# request to mojolicious.org returns www.mojolicious.org
my $host = $c->host;
# request to www.mojolicious.org returns www.mojolicious.org
my $host = $c->host;
"always" will append www.
to the beginning of the host if it is not there before returning it.
# ensure a www. is never present at the beginning of a host
$app->plugin(Host => { www => 'never' };
# request to mojolicious.org returns mojolicious.org
my $host = $c->host;
# request to www.mojolicious.org returns mojolicious.org
my $host = $c->host;
"never" will remove any www.
at the beginning of the host before returning it.
# pass hosts through unmodified
$app->plugin('Host');
# request to mojolicious.org returns mojolicious.org
my $host = $c->host;
# request to www.mojolicious.org returns www.mojolicious.org
my $host = $c->host;
Not specifying "www" will pass hosts through unmodified. This is equivalent to calling:
my $host = $c->req->url->to_abs->host;
# returns host based on the provided options
my $host = $c->host;
"host" returns the host for the current request. See "www" for how to potentially modify the returned host.
The name of this method may be changed by using the "helper" option.
Adam Hopkins srchulo@cpan.org
Copyright 2019- Adam Hopkins
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.