首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将url重写为多个查询参数?

问如何将url重写为多个查询参数?
EN

Stack Overflow用户
提问于 2010-04-27 18:42:32
回答 1查看 2.1K关注 0票数 1

如何重写url,比如:

http://domain.com/class/method/parameter1/parameter2/.../parameterN

至

http://domain.com/index.php?c=class&m=method&p1=parameter1&...&pN=parameterN

其主要思想是创建使用无限数量的查询参数的可能性。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-27 18:57:23

使用Apache’s mod_rewrite module可以做到这一点:

代码语言:javascript
复制
RewriteRule ^/([^/]+/[^/]+)/([^/]+)(/.+)?$ /$1$3?p[]=$2 [N,QSA]
RewriteRule ^/([^/]+)/([^/]+)$ /index.php?c=$1&m=$2 [L,QSA]

但是用PHP做这件事肯定会更容易:

代码语言:javascript
复制
$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = explode('/', trim($_SERVER['REQUEST_URI_PATH'], '/'));
if (count($segments) >= 2) {
    $_GET['class'] = array_shift($segments);
    $_GET['m'] = array_shift($segments);
    $_GET['p'] = $segments;
} else {
    // error
}

然后,您只需要一条规则来重写请求:

代码语言:javascript
复制
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php$ index.php [L]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2720460

复制
相关文章

相似问题

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