How can I enable clean urls in Yii2?

Published on Author Code Father

It working in yii2. Enable mod_rewrite for Apache. For basic template do the following: Create an .htaccess file in web folder and add this

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME}! -f
RewriteCond %{REQUEST_FILENAME}! -d
# Otherwise forward it to index.php
RewriteRule.  index.php

Then inside config folder,in web.php add to components

 'urlManager' => [
        'class' => 'yii\web\UrlManager',
        // Disable index.php
        'showScriptName' => false,
        // Disable r= routes
        'enablePrettyUrl' => true,
        'rules' => array(
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',

In the case of advanced template create the. htaccess files inside backend/web and frontend/web folders and add urlManager component inside common/config/main.php