|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
配置Apache及Nginx实现Yii框架的URL美化
1. Apache
Yii已经做好了默认以Apache服务器运行的配置部署。Yii框架和应用文件夹中的.htaccess 文件严格控制受限制资源的访问, 如果想要在URL中隐藏入口脚本 (通常是 index.php),可以在应用根目录下的.htaccess文件中添加 mod_rewrite 功能,或者配置虚拟主机来实现URL的美化:
- RewriteEngine on
- # prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)
- RedirectMatch 403 /\..*$
- # 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
复制代码 2.Nginx
这里是一个简单的Nginx配置示例,里面定义了启动文件并且使得yii可以获取所有不存在的文件请求,从而实现URL的美化。- server {
- set $host_path "/www/mysite";
- access_log /www/mysite/log/access.log main;
- server_name mysite;
- root $host_path/htdocs;
- set $yii_bootstrap "index.php";
- charset utf-8;
- location / {
- index index.html $yii_bootstrap;
- try_files $uri $uri/ /$yii_bootstrap?$args;
- }
- location ~ ^/(protected|framework|themes/\w+/views) {
- deny all;
- }
- #avoid processing of calls to unexisting static files by yii
- location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
- try_files $uri =404;
- }
- # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
- #
- location ~ \.php {
- fastcgi_split_path_info ^(.+\.php)(.*)$;
- #let yii catch the calls to unexising PHP files
- set $fsn /$yii_bootstrap;
- if (-f $document_root$fastcgi_script_name){
- set $fsn $fastcgi_script_name;
- }
- fastcgi_pass 127.0.0.1:9000;
- include fastcgi_params;
- fastcgi_param SCRIPT_FILENAME $document_root$fsn;
- #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI
- fastcgi_param PATH_INFO $fastcgi_path_info;
- fastcgi_param PATH_TRANSLATED $document_root$fsn;
- }
- # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
- location ~ /\. {
- deny all;
- access_log off;
- log_not_found off;
- }
- }
复制代码 使用这个配置你可以在php.ini设置 cgi.fix_pathinfo=0 来避免许多不必要的系统stat() 调用. |
|