当前位置: 首页 > 知识库问答 >
问题:

去除nginx中url的php扩展

阎祖鹤
2023-03-14

我有一个nginx服务器正在运行,希望删除。我的文件中的php扩展名。我已经尝试了一些方法,但我唯一能做到的就是打破fastcgi过程,下载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;
        }
}

谢谢你的努力和时间。

共有1个答案

东方宜
2023-03-14
##
# 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

 类似资料:
  • 我在nginxweb服务器上,我想删除来自url的扩展。 我目前有以下会议: 如果试图遵循一些类似的案例说明,但似乎没有任何工作与我的conf。 问题是这段代码 在两种情况下运行良好: 客户要求https://mywebsite.com/page.php:好的 客户要求https://mywebsite.com/page:好的 不重写url! 如果客户端试图访问具有文件扩展名的页面,我需要告诉NG

  • 我知道有很多关于这个话题的帖子,但似乎没有一条适合我。我不确定这是否是因为我必须对两个服务器块都这样做,或者我做错了什么。请帮帮我。 下面是我在Amazon远程服务器上的nginx配置,第一个块表示后端,第二个块表示前端:

  • 我想我的nginx使显示所有网址的清洁。 http://www.mydomain.com/indexhtml.html像http://www.mydomain.com/indexhtml http://www.mydomain.com/indexphp.php像http://www.mydomain.com/indexphp 通过一些研究,我做了第一个案例。它通过以下配置完成: 它适用于index

  • 我一直在尝试让nginx在没有. php或. html扩展的情况下工作,我需要一点帮助。提前感谢您的时间! 我尝试了在如何使用NGINX从url中删除. php和. html扩展中找到的解决方案?但是没有效果 这是我当前的nginx配置。这是几个教程的组合,但它是有效的。

  • 问题内容: htaccess删除我网站文件的.php扩展名。 现在,如果我去我的网站 工作正常,它重定向到home.php,但URL仍然友好。 但是如果我写这个URL: 已提供home.php,且URL不友好。 如何避免这种行为?我希望用户写www.mysite.com/home.php,URL栏中显示的URL是www.mysite.com/home 问题答案: 您可以像这样从请求中删除.php

  • 问题内容: 我希望我的nginx使显示的所有URL干净。 通过一些研究,我使第一个案例奏效。它是通过以下配置完成的: 它适用于将indexhtml.html显示为indexhtml,但.php则没有任何反应。如果我将$uri.html更改为$uri.php,则它不适用于.html和.php。我已经尝试在php位置放置类似内容,但没有成功。 有什么建议吗? 问题答案: 根据我的研究,如果您将/etc