2016-04-03 213 views
0

我有一個nginx服務器正在運行,並且想從我的文件中刪除.php擴展名。我已經嘗試了幾件事情,但是我唯一能夠達成的共識是打破了導致下載php文件的fastcgi程序。服務器運行良好,具有以下配置:從nginx的url中刪除.php擴展名

## 
# Virtual Host configuration for example.com 
## 

server { 
     listen 80; 
     listen [::]:80; 
     server_name example.com www.example.com; 
     return 301 https://www.example.com$request_uri; 
} 



server { 
     listen 443 ssl; 
     listen [::]:443 ssl; 

     ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GC$ 
     ssl_prefer_server_ciphers on; 
     ssl_dhparam /etc/letsencrypt/dhparams.pem; 

     ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
     ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 

     root /usr/share/nginx/html/example/; 
     index index.php; 

     server_name example.com www.example.com; 

     location/{ 
       try_files $uri $uri/ =404; 
     } 

     location /uploads { 
       deny all; 
     } 

     error_page 404 /templates/404.php; 

     location ~ \.php$ { 
       fastcgi_split_path_info ^(.+\.php)(/.+)$; 
       fastcgi_pass unix:/var/run/php5-fpm.sock; 
       fastcgi_index index.php; 
       include fastcgi.conf; 
       fastcgi_intercept_errors on; 
     } 

     location ~* \.(?:ttf|ttc|otf|eot|woff|font.css|jpg|jpeg|png|gif|ico|css|js)$ { 
       expires 365d; 
       access_log off; 
       add_header Cache-Control "public"; 
     } 

     location ~ /\. { 
       deny all; 
     } 
} 

感謝您的努力和時間。

+0

的可能的複製[如何刪除這兩個.php然後使用NGINX從URL HTML擴展?(http://stackoverflow.com/questions/21911297/how-to -remove-既-PHP-和HTML的擴展,從-URL-使用-nginx的) –

回答

0
## 
# Virtual Host configuration for example.com 
## 

server { 
     listen 80; 
     listen [::]:80; 
     server_name example.com www.example.com; 
     return 301 https://www.example.com$request_uri; 
} 



server { 
     listen 443 ssl; 
     listen [::]:443 ssl; 

     ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GC$ 
     ssl_prefer_server_ciphers on; 
     ssl_dhparam /etc/letsencrypt/dhparams.pem; 

     ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; 
     ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; 

     root /usr/share/nginx/html/example/; 
     index index.php; 

     server_name example.com www.example.com; 

     location/{ 
       try_files $uri $uri/ @extensionless-php; // add @extensionless-php 
     } 

     location /uploads { 
       deny all; 
     } 

     error_page 404 /templates/404.php; 

     location ~ \.php$ { 
       try_files $uri =404; // add this 
       fastcgi_split_path_info ^(.+\.php)(/.+)$; 
       fastcgi_pass unix:/var/run/php5-fpm.sock; 
       fastcgi_index index.php; 
       include fastcgi.conf; 
       fastcgi_intercept_errors on; 
     } 

     location @extensionless-php {   // add this block 
       rewrite ^(.*)$ $1.php last; 
     } 


     location ~* \.(?:ttf|ttc|otf|eot|woff|font.css|jpg|jpeg|png|gif|ico|css|js)$ { 
       expires 365d; 
       access_log off; 
       add_header Cache-Control "public"; 
     } 

     location ~ /\. { 
       deny all; 
     } 
} 
從這個網站

http://www.tweaktalk.net/60/nginx-remove-php-file-extension-from-url