修改CodeIgniter中的URL

时间:2012-10-06 08:29:26

标签: php codeigniter hook

我的应用程序根据产品的类别和名称生成各种网址。例如,按类别浏览产品,网址将是

localhost/category/Memory Cards

问题是空格被转换为%20 s。如果我urlencoderawurlencode这些空格转换为+符号,但/也会转换为%xx等效,这会导致无效的网址映射到控制器。

我需要使用+符号而不是spaces对所有网址进行编码。我可以使用帮手。但是,我需要在任何地方调用辅助方法。

我可以使用hooks修改HTML,扫描所有网址并将spaces替换为+个符号吗?

我还要将网址从spaces符号解码回+。我怎么能这样做?

如果你认为我的方法完全错了,那么做什么是合适的方法?

1 个答案:

答案 0 :(得分:3)

这样做的首选方法是在表格中添加一个字段(我通常使用“slug”作为字段名称),这是一个对URL名称友好的版本(小写,并替换空格和奇怪的字符破折号/下划线/等等,只需确保保持唯一,然后使用它来生成产品的网址并确定请求的产品。

所以你的网址看起来像localhost/category/memory-cards

您可以使用url_title()生成slugs