漂亮 URL/Clean URL + nginx

Pretty URL/Clean URL + nginx

我正在尝试获取示例。com/language/en 指向示例。com/language?lang=en 我已经让@language 正常工作了(有点像,仍然有一些错误我最后解释)但不幸的是我不知道如何使@language和@extensionless-php同时工作,我通过删除@extensionless-[来测试@language代码=20=] 在位置 / 并添加 @location。 它现在的方式是接受不止一个这样的参数 //example.com/language/en/en/en 我希望它 return 一个 404 错误如果它有超过 1 /语言

当前配置:

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

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

location @language {
    rewrite ^/language/(.*)$ /language.php?lang= last;
}

答案只是从@language 中删除 rewrite ^/language/(.*)$ /language.php?lang= last;,编辑正则表达式,以便当 URI 为 /language/en/ 时会出现 404 错误

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

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

rewrite ^/language/([^/]+)$ /language.php?lang= last;