Configure Apache and Nginx to beautify the URL of the Yii Framework

Source: Internet
Author: User
Tags dotfiles
Configure Apache and Nginx to implement URL beautification of the Yii Framework 1. Apache

Yii has been configured and deployed by default on the Apache server. In the Yii Framework and application folder.htaccess? The file strictly controls access to restricted resources. if you want to hide the entry script in the URL (usually?index.phpCan be added to the. htaccess file under the application root directory?mod_rewrite? Function, or configure a VM to beautify the URL:

RewriteEngine on# prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)RedirectMatch 403 /\..*$# if a directory or a file exists, use it directlyRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# otherwise forward it to index.phpRewriteRule . index.php
2. Nginx

Here is a simple Nginx configuration example, which defines the startup file and allows yii to obtain all non-existent file requests, so as to beautify the 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;    }}

Can you set this configuration in php. ini?cgi.fix_pathinfo=0? To avoid many unnecessary system stat () calls.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.