繁体   English   中英

nginx .php重写规则不起作用

[英]nginx .php rewrite rules not work

嗨,我有一个HTTP重写规则,以https并删除.php扩展名,但这对HTTP到https正常工作,但不能工作.php扩展名,请检查此问题

http {

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name  servername;
    return 301 https://sitename.com$request_uri;

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

    location ~ \.php$ {
        try_files $uri =404;
        ### OTHER CONFIGS ###
    }

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

您的示例中的服务器块与此等效:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name  servername;
    return 301 https://sitename.com$request_uri;
}

return语句之后的所有内容都将被有效忽略。 服务器块具有一个单一目的,即将所有内容从http重定向到https 未经修改

如果您需要使用修改后的URL重定向到https ,则可以使用rewrite ... permanent语句而不是return 301语句。 有关详细信息,请参见此文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM