User gets ability to specify redirection through web GUI.

Installs: 5 928

Dependents: 0

Stars: 2

Watchers: 15

Forks: 4

Open Issues: 0

Type: symfony-bundle

3.2.2 2016-04-19 14:39 UTC


Build Status Latest Stable Version Total Downloads SensioLabsInsight


Step 1: Add to composer.json

"require" :  {
    // ...

Step 2: Enable the bundle

Enable the bundle in the kernel:

// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        // ...
        new Astina\Bundle\RedirectManagerBundle\AstinaRedirectManagerBundle(),

Step 3: Import routing file

Import routing file of bundle. Change prefix attribute to suit your needs.


# app/config/routing.yml
    resource: "@AstinaRedirectManagerBundle/Resources/config/routing.yml"
    prefix:   /redirect/

Step 4: Translations

If you wish to use default texts provided in this bundle, you have to make sure you have translator enabled in your config.

# app/config/config.yml

    translator: ~

Step 5: Configuration Options

In an application with multiple entity managers please configure a new manager or ensure the default manager can access the schema.

# app/config/config.yml
      entity_manager: redirect # Optional entity manager name, if ommitted default entity manager is used
    base_layout: "SomeBundle:SomeDir:index.html.twig"    # Override default Astina layout
    enable_listeners: false # Set to false to disable redirect listeners. Useful for service oriented architectures. Defaults to true

Step 6: Update your DB schema

$ php app/console doctrine:schema:update --force


Importing urls with command

Bundle knows how to import csv file of url for redirection. CSV has to contain two columns, where the first one contain urlFrom and second urlTo.

$ php app/console armb:import /path/to/csv/file.csv [--redirect-code=302] [--count-redirects]

Using subDomain listener to redirect to somewhere else

If listener detects that subDomain is used it redirects visitor to url with name route_name with route_params and redirect code redirect_code.

# app/config/config.yml

        route_name:           ~ # Required
            param1: some-value
            param2: some-different-value
        redirect_code:        301


You have to set parameter in parameters.yml file. Otherwise value localhost will be used as domain name.

# app/config/parameters.yml

# ...
# ...