astina/redirect-manager-bundle

User gets ability to specify redirection through web GUI.

Installs: 5 124

Dependents: 0

Stars: 2

Watchers: 20

Forks: 2

Language: PHP

3.1.0 2015-03-27 16:54 UTC

README

Build Status Latest Stable Version Total Downloads SensioLabsInsight

Install

Step 1: Add to composer.json

"require" :  {
    // ...
    "astina/redirect-manager-bundle":"dev-master",
}

Step 2: Enable the bundle

Enable the bundle in the kernel:

<?php
// 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.

In YAML:

# app/config/routing.yml
astina_redirect_manager:
    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

framework:
    translator: ~

Step 5: Update your DB schema

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

Usage

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

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

Warning

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

# app/config/parameters.yml

# ...
router.request_context.host: example.com
# ...