Yii¶
Recipe¶
この設定はYiiのためのSEF URLを与えます
NGINX 設定¶
server {
server_name domain.tld;
root /usr/share/nginx/html;
index index.html index.php;
#Yii Specific location configurations.
#SEF URLs for sampleapp.
location /sampleapp {
rewrite ^/sampleapp/(.*)$ /sampleapp/index.php?r=$1;
}
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;
}
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}
#End Yii Specific specific location configurations.
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;
}
}
Yii 設定¶
この後で、アプリケーション(sampleapp)のためのYii設定ファイル(main.php)が、アプリケーション内でSEF URLを有効にするために以下の情報を含むようにしてください。
'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>',
),
)