0

有没有办法在 htaccess 中放置一个重写规则,将查询字符串转换为分段的 URI?例如。

http://domain.com/controller/method/?a=1&b=2&c=3

应该重写为

http://domain.com/controller/method/a/1/b/2/c/3

所有要做的就是删除 ? 并用 / 替换 &s 和 =s,但我不太确定所有这些数字是如何进入 .htaccess ...

没关系,但我在 Apache 上使用 PHP 和 CodeIgniter。

4

3 回答 3

1

你为什么不把这个逻辑放在你的 CodeIgniter 控制器中,而不是放在 .htaccess 中呢?

查看CodeIgniter 的用户指南以处理查询字符串和 URL。

于 2009-05-18T11:24:58.960 回答
0

如果您想在 .htaccess 中执行此操作,您需要有 mod_rewrite。

规则并不太难。我给你一个最小的例子,你需要调整正则表达式来解决你的需要。

RewiteRule ^/([a-z]+)/([a-z]+)$ /method/?$1=$2
于 2009-05-18T11:38:20.743 回答
0

这是你可以做的:

RewriteCond %{THE_REQUEST} ^GET\ /[^?]*\?
RewriteCond %{QUERY_STRING} ^([^&=]+)=?([^&]*)&([^&=]+)=?([^&]*)&?(.*)
RewriteRule ^ %{REQUEST_URI}/%1/%2/%3/%4?%5 [L]
RewriteCond %{THE_REQUEST} ^GET\ /[^?]*\?
RewriteCond %{QUERY_STRING} ^([^&=]+)=?([^&]*)&?(.*)
RewriteRule ^ %{REQUEST_URI}?/%1/%2?%3 [L]
于 2009-05-18T11:45:06.080 回答