Изменение шаблона url для принятия имени пользователя, такого как facebook

Мне нужно скрывать ссылку на профиль пользователя из этого http://example.com/site/index?user_id=sami.yaqoub

Быть похожим на Facebook http://example.com/sami.yaqoub

Я изменил правила файла конфигурации, за исключением этого.

config.php

<?php .. 'urlManager' => array( 'urlFormat' => 'path', 'showScriptName' => false, 'rules' => array( '<controller:\w+>/<id:\d+>' => '<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', '<controller:\w+>/<action:\w+>' => '<controller>/<action>', '<user:[a-zA-Z0-9_-]\w+>'=>'site/index',// here is the code ), ), ... ?> 

Он работал со всеми словами, не содержавшими ни одной точки ». , поэтому я изменил его таким образом

  '<user:[a-zA-Z0-9_-.]\w+>'=>'site/index',// return error 

Но и не работал. Каков наилучший метод в этом случае, кроме этой формулы Name.anything

заранее спасибо

    В regexp [a-zA-Z0-9_-.]\w+ вы можете сопоставлять такие вещи, как .helloworld но не hello.world потому что вы сопоставляете точку . символ только в первой позиции.

    Вы должны написать так: [a-zA-Z0-9_-.][\w.]+ .

    Я не уверен, но, возможно, Facebook не позволяет использовать специальные символы в первой позиции, такие как точка или тире. В этом случае правильным ответом будет: [a-zA-Z0-9][\w.]+ Или более короткий \w[\w.]+

    Обратите внимание, что \w в регулярном выражении соответствует символам слов. \w эквивалентно [A-Za-z0-9_]

    Попробуйте создать файл .htaccess в корневой папке и вставьте этот код ниже.

     # if you have mod rewrite installed in your hosting space, you can enable pretty url for # compressed css/js by uncommenting following lines #RewriteEngine On #Options FollowSymLinks #RewriteRule ^packs/(\w+)\.(css|js) packs/jscsscomp.php?q=$1.$2 Options +FollowSymlinks Options -Indexes RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php [L,QSA] <Files .htaccess> order allow,deny deny from all 

    Это может помочь также -> Yii, как получить чистый и красивый URL-адрес

    Я считаю, что вы хотите создать Slug .

    Взгляните сюда, если вы хотите создать его самостоятельно или проверить уже сделанные плагины, которые делают это за вас.