palmtree / canonical-url-bundle
Canonical URL Symfony bundle
Installs: 278
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 1
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.6
- symfony/config: ~2.7|~3.0
- symfony/dependency-injection: ~2.7|~3.0
- symfony/http-kernel: ~2.7|~3.0
- symfony/routing: ~2.7|~3.0
- twig/twig: ~1.28|~2.0
Requires (Dev)
- palmtree/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ~8.3
- symfony/yaml: ~4.3
README
The CanonicalUrlBundle
is a Symfony bundle to redirect requests from multiple URLs for the same resource to a single canonical URL.
For example, if you had a resource named /about-us for your site example.org it could potentially be accessed with:
http://example.org/about-us
http://example.org/about-us/
http://www.example.org/about-us
http://www.example.org/about-us/
https://example.org/about-us
https://example.org/about-us/
https://www.example.org/about-us
https://www.example.org/about-us/
When a user requests the resource with any of the above URLs, CanonicalUrlBundle
will build a canonical URL based on a predefined site URL and will
perform an HTTP redirect to it if the request URL does not match.
The bundle can also add a <link rel="canonical">
tag to your twig templates, see the Usage section for how.
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
composer require palmtree/canonical-url-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Palmtree\CanonicalUrlBundle\PalmtreeCanonicalUrlBundle(), ); // ... } // ... }
Step 3: Configure the Bundle
Add your configuration for the bundle to app/config/config.yml
:
palmtree_canonical_url: site_url: 'https://example.org' # replace with your full site URL (without trailing slash) redirect: true # Set to false disable redirects if you just want to use the canonical link tag redirect_code: 301 # Leave this at 301 for SEO trailing_slash: false # Set to true if your routes and canonical URLs contain a trailing slash
Usage
To add a <link rel="canonical">
tag to your pages include the following code in the <head>
of a twig tempalte:
{{ palmtree_canonical_link_tag() }}
The href attribute will default to the canonical URL for the current request, but this can be overidden:
{{ palmtree_canonical_link_tag('http://example.org/my-custom-link') }}
License
This bundle is released under the MIT license