Nginx location ~ .php$ 解説

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;
    #error_page  404              /404.html;

    location / {
        root   /var/www/html;
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass phpfpm;  # 上で定義したアップストリームを指定
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

location ~ \.php$~は、正規表現を使用したパターンマッチングを行うことを意味しています。この場合、次のような内容を表しています。

  • location ~ \.php$:
    • locationディレクティブは、指定されたパスに一致するリクエストに対して、特定の処理を行うために使用されます。
    • ~は、正規表現を使用することを意味します。これにより、locationブロックの条件として、指定したパターンに一致するすべてのリクエストをキャッチします。
    • \.php$は、.phpで終わるファイルパスに一致する正規表現です。
      • \.は、.をリテラルとして扱うためにエスケープされています(通常、.は正規表現で任意の1文字を表します)。
      • phpはそのまま「php」という文字列に一致します。
      • $は、文字列の終わりを示します。つまり、phpで文字列が終わることを意味します。

この設定は、リクエストされたURLが.phpで終わる場合に、locationブロック内の設定(例えば、FastCGIの設定など)を適用することを意味しています。これにより、PHPファイルに対するリクエストが適切に処理され、PHP-FPMなどのバックエンドに渡されます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です