Чтобы избавиться от префикса index.php, вам нужно включить mod_rewrite в вашем конфигурационном файле apache и использовать htaccess для перезаписи URL.
Чтобы включить mod_rewrite, откройте файл httpd.conf и раскомментируйте следующую строку
LoadModule rewrite_module modules/mod_rewrite.so
Чтобы переписать URL-адреса, вы должны поместить файл .htaccess (с точным названием «.htaccess») в корень сайта и добавить в него следующие строки:
RewriteEngine On
RewriteCond $1 !^(index\.php|images|scripts|css|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Третья строкаЭто важно, так как позволяет статическому контенту обслуживаться.Вам придется изменить его, чтобы он соответствовал структуре вашего проекта.
Думаю, что сделать пользователя зависимым невозможно.См. документация mod_rewrite для справки
ОБНОВЛЕНИЕ: Если речь идет только об использовании mysite.com/username
вместо mysite.com/index.php/home/user_get
, вы можете определить контроллер username
с помощью одного метода
public function index(){
redirect('/home/user_get', 'refresh');
}
Если вы собираетесь поддерживать нескольких пользователей, например, mysite.com/john, mysite.com/dave, это может помочь
RewriteEngine On
RewriteCond $1 ^(index\.php|images|scripts|css|robots\.txt)
RewriteRule $1 [L]
RewriteCond $1 !^(products|categories)
RewriteRule ^(.*)$ /index.php/users/$1 [L]
RewriteRule ^(.*)$ /index.php/$1 [L]
, это перенаправит любые запросы неизвестнымконтроллер для пользователя контроллера.Вы должны будете перечислить все свои контроллеры в (products|categories)
.В контроллере пользователей у вас будет имя пользователя в качестве параметра, просто если ваш URL будет / users / username.Обратите внимание, что это не проверено.