【问题标题】:Clean Url Codeigniter清理 URL Codeigniter
【发布时间】:2011-02-13 18:27:54
【问题描述】:

我想用 codeigniter 清除我的 url,我有这些类型的 url: www.ggg.com/index.php/page/8/name.html 我想改变这些像 www.ggg.com/index.php/name.htmlwww.ggg.com/name.html

是否可以修改文件 route.php?

【问题讨论】:

    标签: url codeigniter


    【解决方案1】:

    实际上,要删除 index.php,您需要从 config.php(在应用程序内的 config 文件夹中)编辑出 index.php 文件。

    .htaccess 用于干净的 url:

    RewriteEngine on
    RewriteCond $1 !^(index\.php|images|robots\.txt)
    RewriteRule ^(.*)$ /index.php/$1 [L]
    

    要删除.html,只需再次删除config/config.php 文件中的“后缀”即可。

    这应该是你所需要的,.html 结尾只是为了 show

    至于将page/8/name 之类的东西变成name,我会三思而后行,您的页面或8 很可能意味着什么,因此您的name 必须具有使其独一无二的代码。我的猜测是 page = 8 是值,而名称只是为了友好的 url 外观。

    【讨论】:

    • 我同意小心路由,但问题是问它是否可能 - 它是。我们没有被问到我们是否认为这是个好主意!
    • 是的 8 是一个 id 和 name 只是为了友好的 url 外观
    • @Pierluigi Ballatore - 如果是我假设的情况,请确保测试这种类型的 URI 更改是否不会扰乱您的网站/应用程序的遍历。
    【解决方案2】:

    编辑 routes.php 文件并添加以下行: $route['name'] = "page/8/name"; 这在文档中都有解释:http://codeigniter.com/user_guide/general/routing.html 要删除 index.php,您需要一个 .htaccess 文件。 ci docs 中有一个示例或 google it,您会发现大量教程。我敢肯定这里甚至有一些例子。

    【讨论】:

    • 我在route.php中写这条规则时出现问题:$route['page/index/:num/:any']='$2' it doesn't work,codeigniter说我当我写网址“www.ggg.com/index2.php/page/index/8/name.html”时,“页面不支持”
    • 你搞错了。数组键是您想要查看的 URL,在您的情况下为 www.ggg.com/name,数组值是您实际想要使用的控制器/方法。您的问题是您要使用的方法需要一个不固定的 id 作为参数。我唯一可以建议的是将 id 存储(可能是暂时的)会话中,然后在需要时检索它。这样你就可以将“名称”路由到“页面/索引”,它应该对你有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多