astina / redirect-manager-bundle
User gets ability to specify redirection through web GUI.
Installs: 72 122
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 19
Forks: 8
Type:symfony-bundle
Requires
- php: >=5.4.0
- doctrine/doctrine-bundle: ^1.0
- doctrine/orm: ^2.2.3
- symfony/symfony: ^2.8||^3.4
Requires (Dev)
- phpunit/phpunit: >=4.3
README
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: 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 astina_redirect_manager: storage: 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
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 # ...