1

我目前正在使用 Codeigniter 构建一个 Web 应用程序。我注意到他们的文档更喜欢分段 URL 而不是查询字符串,这是有道理的,因为它们更容易阅读并且看起来更好。前几天我也在浏览 threadless.com,非常喜欢他们格式化查询的方式:

通常,查询如下所示:

http://www.threadless.com/catalog/index.php?type=guys&view=25&size=3xl

但是 Threadless 使用这种格式:

http://www.threadless.com/catalog/type,guys/view,25/size,3xl

他们如何获得这种格式?它是否涉及.htaccess?该格式是否与 Codeigniter 配合得很好,还是会涉及自定义功能?

谢谢!

4

4 回答 4

3

您可以在可以拥有的地方做类似的事情。

http://www.threadless.com/catalog/type/guys/view/25/size/3x1

为此,您将拥有一个控制器功能,例如:

class Catalog extends CI_Controller {
    function catalog()
    {
        $params = $this->uri->uri_to_assoc(3);
    }
}

这将输出如下内容:

Array
(
    [type] => 'guys'
    [view] => 25
    [size] => '3x1'
)

如果你想要逗号,你会想要触摸 .htaccess 将所有“,”重写为“/”。

RewriteCond %{REQUEST_URI} ^([^\,]*)\,(.*)$
RewriteRule .* %1/%2 [R=301,L]
于 2012-07-05T15:11:14.847 回答
1

它是你的 .htaccess 中的 mod_rewrite

http://statichtml.com/2010/mod-rewrite-baseon-on-query-string.html

于 2012-07-05T15:03:27.513 回答
0

如果您使用的是 Apache,那么它将涉及 .htaccess、.htdocs 或 httpd.conf(有多种方法)。关键是设置它,以便将名为“catalog”的文件解析为 .php 文件。然后,文件名 ( /type,guys/view,25/size,3xl) 之后的所有内容都作为 传递给脚本$_SERVER['PATH_INFO'],您将自己解析。

不确定 CodeIgniter 是如何工作的,或者它是否具有以不同方式执行此操作的功能。

于 2012-07-05T15:06:27.470 回答
0

这不是 CodeIgniter 通常做事的方式,但在http://codeigniter.com/user_guide/general/routing.html中有帮助

你需要编辑/application/config/routing.php

于 2012-07-05T15:07:32.100 回答