Как сделать, чтобы URL на сайте имели вид http://сайт/язык/controller/action? В конфиге доступные языки заданы (ua и ru).
И при этом надо, чтобы можно было ещё создать сплэш доступный по адресу http://сайт/ и админку http://сайт/admin/
Как сделать, чтобы URL на сайте имели вид http://сайт/язык/controller/action? В конфиге доступные языки заданы (ua и ru).
И при этом надо, чтобы можно было ещё создать сплэш доступный по адресу http://сайт/ и админку http://сайт/admin/
как раз заморочился для своего сайта…
в конфиге main.php:
'urlManager'=>array(
'showScriptName'=>false,
'urlFormat'=>'path',
'urlSuffix'=>'.html',
'rules'=>array(
'<lang:[en|ru]+>/<_a:(index|contact|social)>'=>'site/<_a>',
'<_a:(index|contact|social)>'=>'site/<_a>',
......
в .htaccess
Options +FollowSymLinks
IndexIgnore */*
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
результат можно увидеть здесь:
Уже появилось дополнение langhandler, которое выполняет эту задачу, — http://www.yiiframework.com/extension/langhandler/
Но ваш метод вроде тоже хорош.