Skip to content

Different url rules for different languages #129

@insperedia

Description

@insperedia

To implement SEO urls in my project I need different urls for different languages, for example:
/en/convert-pdf-to-text
/ru/konvertirovatj-pdf-v-text
/se/konvertera-pdf-i-text

It is really simple to implement. But probably it would be helpful to someone to have this functionality build-in .
I do like this:
Web config:

'ruleConfig' => ['class' =>  'app\classes\UrlRule'],
[                
           'pattern' => 'convert-pdf-to-text',
            'route' => 'convert/pdf-to-text',
            'language' => 'en'
],
[              
           'pattern' => 'kovertirovatj-pdf-v-text',
           'route' => 'convert/pdf-to-text',
           'language' => 'ru'
],

UrlRule class

class UrlRule extends \yii\web\UrlRule
{
    public $language;
    public function createUrl($manager, $route, $params)
    {
        if ($this->language && \Yii::$app->language != $this->language)
            return false;
        return parent::createUrl($manager, $route, $params); // TODO: Change the autogenerated stub
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions