ホームページ >バックエンド開発 >PHPチュートリアル >Nginx 構成 CodeIgniter プロジェクト (2)
URL 書き換え方法
server { listen 8080; サーバー名 www.xxx.com; access_log /usr/local/var/log/access.log; var/log/error.log; 場所 ~ ^/(img|images|script|js|css|upload)/ { root /Users/lch/work/www/ci; if (!-e $request_filename) { # /admin の書き換え ^/(admin)$ /index.php?c=welcome&m=index&d=$1 Break; # /admin/index の書き換え ^/(admin)/([a-zA-Z_] +)$ /index.php?c=$2&m=index&d=$1 Break; # /admin/account/login の書き換え ^/(admin+)/([a-zA-Z_]+)/([a-zA- Z_]+)$ /index.php?c=$2&m=$3&d=$1 Break; ## 一般的な URL 書き換え ^/([a-zA-Z_]+)/([a-zA-Z_]+) /?(.*)$ /index.php?c=$1&m=$2 last; } root /Users/lch/work/www/ci; fastcgi_param SCRIPT_FILENAME $document_root$
上記の構成を説明します。特にバックグラウンド関連のコントローラーを保存するために新しいフォルダー admin を作成したため、通常のパス (&d = に対応) よりも 1 つ多くのレイヤーがあります。管理者) このパラメータ。ここで、admin のような状況が発生した場合、対応する書き換えルールを追加する必要がある、書き換えメソッドの欠点がわかります。
PATH_INFOメソッド
server { listen 8080; サーバー名 www.xxx.com; アクセスログ /usr/local/var/log/snap_access.log; var/log/snap_error.log; 場所 ~ ^/(img|images|script|js|css|upload)/ { root /Users/lch/work/kidulty/snap_www } if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; } location ~ { set $path_info ""; set $real_script_name $fastcgi_script_name if ($fastcgi_script_name ~ "^(.+?.php) )$") { set $real_script_name $1; set $path_info $2; } root /Users/lch/work/kidulty/snap_www; fastcgi_pass 127.0.0.1:9001; fastcgi_index Index.php; fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $ real_script_name; fastcgi_param PATH_INFO $path_info; include fastcgi_params; } }
注:
プロジェクト内の URL が http://www.xxx.com/index.php/user/profile に似ている場合、必要はありません。以下を書き換えます:
if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; }
上記は、Nginx 設定 CodeIgniter プロジェクト (2) の内容です。コンテンツについては、PHP 中国語 Web サイト (www .php.cn) にご注意ください。