我目前正在用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 或是否涉及自定义函数?
谢谢!
你可以在你可以拥有的地方做类似的事情。
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]
它
在你的.htaccess中mod_rewrite
http://statichtml.com/2010/mod-rewrite-baseon-on-query-string.html
如果你使用的是Apache,那么它将涉及.htaccess,.htdocs或httpd.conf(有多种方法)。关键是设置它,以便将名为"catalog"的文件解析为.php文件。然后,文件名(/type,guys/view,25/size,3xl
)之后的所有内容都作为$_SERVER['PATH_INFO']
传递给脚本,您可以自己解析。
不确定CodeIgniter如何准确工作,或者它是否具有以不同方式执行此操作的功能。
这不是 CodeIgniter 通常做事的方式,但在 http://codeigniter.com/user_guide/general/routing.html
您需要编辑/application/config/routing.php