如何将 domain/first/second/ 之后的前 2 个字符串子目录作为 lang 和 page 参数传递到 nginx 中的 domain/index.php 文件css、js 文件除外

问题描述

    server {
        server_name domain.com www.domain.com;
        root /home/username/www/domain.com/public/;
        access_log /home/username/www/domain.com/public/access.log;
        error_log /home/username/www/domain.com/public/errorr.log;
        index index.html index.htm index.PHP;

    location ~ \.css {
        add_header  Content-Type    text/css;
    }
    location ~ \.js {
        add_header  Content-Type    application/x-javascript;
    }

    rewrite ^/(.*)/$ /index.PHP?lang=$1&page=$2 last;

    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.PHP$ {
        include snippets/fastcgi-PHP.conf;
        fastcgi_pass unix:/var/run/PHP/PHP7.4-fpm.sock;
     }

    listen 443 ssl; # managed by Certbot
    include /etc/letsencrypt/options-ssl-Nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
}

server {
    if ($host = www.domain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = domain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


        listen 80;

        server_name domain.com www.domain.com;
    return 404; # managed by Certbot
}

我想要做的是将域/第一个/第二个目录作为参数以 domain/index.PHP?lang=first&page=second 格式传递

一个 $1 运行良好。 但是在 $ 之前添加 (.*)/ 之后,我打开了一个结构类似于 domain/en/page1 的页面 页面加载但是css,js加载不正确。

如何在重写时抛出异常?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)