I have a problem with routing and the internationalization of my site built with Symfony2.
If I define routes in the routing.yml file, like this:
example: pattern: /{_locale}/example defaults: { _controller: ExampleBundle:Example:index, _locale: fr }
It works fine with URLs like:
mysite.com/en/example mysite.com/fr/example
But doesn't work with
mysite.com/example
Could it be that optional placeholders are permitted only at the end of an URL ?
If yes, what could be a possible solution for displaying an url like :
mysite.com/example
in a default language or redirecting the user to :
mysite.com/defaultlanguage/example
when he visits :
mysite.com/example. ?
I'm trying to figure it out but without success so far.
Thanks.
If someone is interested in, I succeeded to put a prefix on my routing.yml
without using other bundles.
So now, thoses URLs work :
www.example.com/ www.example.com//home/ www.example.com/fr/home/ www.example.com/en/home/
Edit your app/config/routing.yml
:
ex_example: resource: "@ExExampleBundle/Resources/config/routing.yml" prefix: /{_locale} requirements: _locale: |fr|en # put a pipe "|" first
Then, in you app/config/parameters.yml
, you have to set up a locale
parameters: locale: en
With this, people can access to your website without enter a specific locale.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With