首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Nginx服务器中重写带有多个get参数的URL?

如何在Nginx服务器中重写带有多个get参数的URL?
EN

Stack Overflow用户
提问于 2018-03-11 07:39:07
回答 1查看 150关注 0票数 0

我正在开发一款新的游戏。首先,我想谈谈我的URL结构。

代码语言:javascript
复制
domain.com/character.php  
domain.com/character.php?id=1

domain.com/character.php?id=1page=slog
domain.com/character.php?page=slog

domain.com/character.php?page=slog&date=4-2018
domain.com/character.php?id=1&page=slog&date=4-2018

domain.com/character.php?id=1&page=slog&sid=10
domain.com/character.php?page=slog&sid=10

我想像这样改变我的url结构:

代码语言:javascript
复制
domain.com/character/  
domain.com/character/1

domain.com/character/1/slog
domain.com/character/slog

domain.com/character/slog/date/4-2018
domain.com/character/1/slog/date/4-2018

domain.com/character/1/slog/sid/10
domain.com/character/slog/sid/10

出于这个目的,我在nginx服务器配置中写了一段类似的代码。但这只适用于character.php及其子页面。我将为place.php,company.php等添加它的其他版本。有没有什么简单的方法来代替:

代码语言:javascript
复制
location = /character {
try_files character.php /character.php;
}

location = /character/ {
try_files character.php /character.php;
}

location ~ /character/([0-9]+)$ {
try_files character.php /character.php?id=$1;
}

location ~ /character/([A-z]+)$ {
try_files character.php /character.php?page=$1;
}

location ~ /character/([0-9]+)/([A-z]+)$ {
try_files character.php /character.php?id=$1&page=$2;
}

location ~ /character/([0-9]+)/([A-z]+)/date/(.*)$ {
try_files character.php /character.php?id=$1&page=$2&date=$3;
}

location ~ /character/([A-z]+)/date/(.*)$ {
try_files character.php /character.php?page=$1&date=$2;
}

location ~ /character/([0-9]+)/([A-z]+)/sid/([0-9]+)$ {
try_files character.php /character.php?id=$1&page=$2&sid=$3;
}

location ~ /character/([A-z]+)/sid/([0-9]+)$ {
try_files character.php /character.php?page=$1&sid=$2;
}

location ~ /character/([A-z]+)/action/([A-z]+)/sid/([0-9]+)$ {
try_files character.php /character.php?page=$1&action=$2&sid=$3;
}

感谢您的回复。

EN

回答 1

Stack Overflow用户

发布于 2018-03-14 17:27:02

将nginx配置用于此目的似乎非常不正统。您应该在您的PHP应用程序级别路由URL,因为nginx已经可以使用try_files $uri $uri/ /index.php$is_args$args;处理这样的请求。

您应该使用$_SERVER['REQUEST_URI']查看how to route URLs like that in PHP

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49215153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档