我正在开发一款新的游戏。首先,我想谈谈我的URL结构。
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结构:
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等添加它的其他版本。有没有什么简单的方法来代替:
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;
}感谢您的回复。
发布于 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。
https://stackoverflow.com/questions/49215153
复制相似问题