2016-04-03 174 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