Php 在CodeIgniter中修改URL
我的应用程序根据产品的类别和名称生成各种URL。例如,要按类别浏览产品,url将是Php 在CodeIgniter中修改URL,php,codeigniter,hook,Php,Codeigniter,Hook,我的应用程序根据产品的类别和名称生成各种URL。例如,要按类别浏览产品,url将是 localhost/category/Memory Cards 问题是空格被转换为%20s。如果Iurlencode或rawurlencode则空格将转换为+符号,但/也将转换为%xx等效项,从而导致url到控制器的映射无效 我需要用+符号而不是空格对我的所有URL进行编码。我需要一个助手。然而,我需要到处调用helper方法 我可以使用hooks修改HTML、扫描所有URL并将空格替换为+符号吗 我还需要将+
localhost/category/Memory Cards
问题是空格被转换为%20
s。如果Iurlencode
或rawurlencode
则空格将转换为+
符号,但/
也将转换为%xx
等效项,从而导致url到控制器的映射无效
我需要用+
符号而不是空格对我的所有URL进行编码。我需要一个助手。然而,我需要到处调用helper方法
我可以使用hooks
修改HTML、扫描所有URL并将空格
替换为+
符号吗
我还需要将+
符号中的URL解码回空格
。我怎么能这么做
如果你认为我的方法完全错了,那么什么才是合适的方法呢?更可取的方法是在表中增加一个字段(我通常使用“slug”作为字段名),这是一个url友好的名称版本(小写,并用破折号/下划线/任何字符替换空格和奇怪的字符),只需确保它是唯一的,然后使用它来生成产品的URL,并确定请求是关于什么产品的
因此,您的url看起来像localhost/category/memory cards
您可以使用生成slug这样做的首选方法是在表中有一个额外的字段(我通常使用“slug”作为字段名),这是一个url友好的名称版本(小写,用破折号/下划线/任何字符替换空格和奇怪的字符),只要确保它是唯一的,然后使用它生成产品的URL,并确定请求涉及的产品
因此,您的url看起来像localhost/category/memory cards
您可以使用生成slugurldecode()有什么问题
?我必须在每个方法中调用它。我想要一种更通用的方法,比如在钩子或其他什么东西中使用它urldecode()
?我必须在每个方法中调用它。我想要一种更通用的方法,比如在钩子或其他东西中使用它