Yii Framework¶
This configuration enables SEF (Search Engine Friendly) URLs for Yii applications.
NGINX Configuration¶
server {
server_name domain.tld;
root /usr/share/nginx/html;
index index.html index.php;
# SEF URLs for your Yii app
location /sampleapp {
rewrite ^/sampleapp/(.*)$ /sampleapp/index.php?r=$1;
}
# Block access to protected directories
location ~ /(protected|framework|nbproject) {
deny all;
access_log off;
log_not_found off;
}
location ~ /themes/\w+/views {
deny all;
access_log off;
log_not_found off;
}
# Static files
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param HTTP_PROXY "";
}
}
Yii Configuration¶
In your main.php config file, enable URL path format:
'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>',
),
)