16827

[code]

    /var/www/example.net/
     ├ index.php
     ├ foo.php
     └ hoge/
        └ bar.php
    
[/code]

とファイルがあるときに

`http://example.net/`ではindex.phpが呼び出され、  
`http://example.net/foo`ではfoo.phpが呼び出され、  
`http://example.net/hoge/bar`ではbar.phpが呼び出されるようにしたいです。

try_filesも試してみましたが.phpをつけずにphp-fpmにマッチするというのをどういう風に作ればいいのかわかりませんでした。  
よろしくお願いします。

**追記**

> 現状の nginx ファイルを追記できないでしょうか？try_files
> も試されたということですが、書き方の問題なのか、設定の問題なのか、情報が少ないため回答がしづらく思います。(try_files
> で解消されることも多いようですね) – user3758624

現状のnginxファイルは

[code]

    server {                                                                                                                                                                                                                        
        listen 80;                                                                                                                                                                                                                  
        server_name example.net;
        location / {                                                                                                                                                                                                                
            root /var/www/example.net;                                                                                                                                                                                        
            index index.php index.html;                                                                                                                                                                                             
            try_files $uri $uri.php $uri.html $uri/  404.html=404;                                                                                                                                                                  
        }                                                                                                                                                                                                                           
        location ~ \.php$ {                                                                                                                                                                                                         
            root /var/www/example.net;                                                                                                                                                                                        
            fastcgi_split_path_info ^(.+\.php)(/.+)$;                                                                                                                                                                               
            fastcgi_pass   127.0.0.1:9000;                                                                                                                                                                                          
            fastcgi_index  index.php;                                                                                                                                                                                               
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;                                                                                                                                                     
            include        fastcgi_params;                                                                                                                                                                                          
        }                                                                                                                                                                                                                           
    }
    
[/code]

となっていて、  
`http://example.net/foo.php`では表示できますが、  
`http://example.net/foo`ではfooというファイルがダウンロードされてしまいます。（php-fpmの条件にマッチしていない？）


CC BY-SA 3.0
2015-09-20T08:29:33.153
16795
2015-09-21T15:48:59.653
2015-09-20T15:03:50.203
3186
3186
question
nginx
.phpを付けなくていいnginxの設定


try_files だと「location /」内で解決してしまって、「location ~ .php$」に入らないようですね。".php"
ファイルが存在する場合に rewrite してしまう方法はどうでしょうか。

[code]

    location / {
        root /var/www/example.net;
        index index.php index.html;
        try_files $uri $uri.php $uri.html $uri/  404.html=404;
        if ( -f $request_filename.php ) {
            rewrite ^(.*)$ $1.php;
        }
    }
    
[/code]


CC BY-SA 3.0
2015-09-21T15:48:59.653
16827
2015-09-21T15:48:59.653
4603
16795
answer