问题标签 [codeigniter-url]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1458 浏览

mod-rewrite - 不包含 CodeIgniter CSS 文件

我的 CodeIgniter 安装有点奇怪,我使用 modrewrite 来缩短我的 URL,例如我有一个 api 页面:

http://www.mydomain.com/api

而且效果非常好,我的 .htaccess 文件如下所示:

但真正奇怪的是,如果我输入一个斜杠:

http://www.mydomain.com/api/

API 页面加载正常,但它不包含所有页面中包含的 Base CSS 文件,如果它根本不加载任何东西会很好,但我需要阻止它加载实际的 api 页面。任何意见将是有益的,

谢谢!

更新:我发现当我查看源代码时,当 CSS 正确加载时,我的 CSS 文件来自以下内容:

http://www.mydomain.com/css/all.css

但是当它无法加载它来自

http://www.mydomain.com/api/css/all.css

0 投票
2 回答
3521 浏览

php - 使用 Codeigniter 1.7.2 + HMVC 在日志中找不到 404 页面

我正在使用 Codeigniter 1.7.2 和 HMVC(https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home)。

我有这些文件,它们是根据 HMVC 组织的:

在 中routes.php,我设置了一条路线:

如果 url 采用这种模式,一切正常: http://www.mydomain.com/index.php/welcome

但现在我想从 url 中删除 index.php,所以我创建了 .htaccess 文件:

然后我将其设置$config['index_page']为空:

现在我可以访问这个 url 模式的页面: http://www.mydomain.com/welcome

虽然看起来一切正常,但我发现每次访问该页面时,都会在日志中生成 404 page not found 错误:

这不是特定于welcome页面的,所有页面都有相同的问题。我深入研究了代码,发现这条404 Page Not Found消息是由MX_Router.phpHMVC 附带的。具体来说,它来自这个函数:

调用的是 show_404() 函数,因此我收到了该错误消息。index.php但是由于我可以使用已删除的 url 模式毫无问题地访问每个页面。

_validate_request()为什么 HMVC 认为在这个函数中没有找到控制器?如果我恢复更改,我不会在日志中收到 404 错误消息,但这也意味着我必须继续使用 url 模式index.php,这看起来很糟糕。

有人遇到过同样的问题吗?非常感谢你们。

0 投票
1 回答
3903 浏览

php - Codeigniter 中的路由和 URI 解析

我在 CI 中定义了一条路线,

$route['user/activate-account/:any'] = "user/activate_account";

人们以这种 url 模式访问路由,

http://mydomain.com/user/activate-account/user_id/12345/token/abcdefghijk

activate_account函数内部,我尝试使用以下代码来检索所需的数据,

但是它们返回 FALSE,这是否意味着对于这种 url 模式,我应该使用 URI 类(http://codeigniter.com/user_guide/libraries/uri.html)提供的函数来检索变量?

0 投票
1 回答
407 浏览

codeigniter - 被找到但未找到的 CodeIgniter 控制器难住了

好吧,我承认。我是CI新手。我正在做一些非常基本的错误,我已经做了几个小时并且找不到我的错误。

我有一个名为登录的控制器。它在我的控制器文件夹中的资源文件夹中。它加载一个名为 login_form 的视图。但是对于我的生活,如果我去 domain.com/resources/login 或 domain.com/resources/index,它将不会加载。但我可以通过一条路线到达它:

即使我以这种方式进行操作,也找不到我的表单操作。这是我的表格:

路径是我的控制器文件夹中的资源文件夹,控制器是使用 validate_credentials 方法的登录控制器。这是我的登录控制器的相关部分:

index 函数在我使用路由时起作用,但在我使用上述 domain.com 路径时不起作用。我认为这就是它找不到 validate_credentials 方法的原因。我究竟做错了什么?

这是main.php

0 投票
1 回答
106 浏览

php - CodeIgniter 路由区别?

一个简单的问题,我似乎无法找到与 CI 中的路由有关的任何地方的答案 - 全局捕获所有之间是否有任何真正的区别:

我的路由没有任何问题,而且似乎工作方式相同,但只是想知道一种方法是否比另一种更好。

0 投票
1 回答
3496 浏览

.htaccess - 代码点火器 - URL 重写

嘿,我正在尝试让一个项目工作,但我在重写模块时遇到了问题。
我在 Windows XP 上运行 Wamp。我更改了 httpd.conf 以将 localhost 的根更改为:

我有 htaccess

我的 Apache 已激活重写模块。
我在 config.php 中的 base_url() 是 routes.php 中的“ http://localhost/
我有:

当我将浏览器指向http://localhost/时,我得到了我网站的主页,但是当我点击任何内部链接(如“our-recipes”)时,它会加载,但我得到的是相同的主页,新的 url 在位置栏。如果我尝试访问“ http://localhost/recipes ”,我会得到相同的结果。

这是我的文件夹结构:
文件夹结构

谁能帮我解决这个问题??

0 投票
2 回答
756 浏览

php - 在 Codeigniter 中开发自定义 CMS 时如何处理路由

我是 Codeigniter 的新用户,正在开发一个简单的后端 CMS 来管理页面。

基于 URL(在本例中,我隐藏了“index.php”):mysite.com/pagename

我希望系统检测我的数据库中是否有“pagename”的值,如果有,我需要系统重新路由到自定义控制器(例如:Pagemaker),如果没有名为 pagename 的记录,只是做正常的事情(即找到一个名为 pagename 的控制器)

目前我有:

从而将所有请求转发到我的自定义函数。

但是,我想更改此结构,以便如果该页面在数据库中不存在,则遵循传统的 codeigniter 请求过程。

任何人都可以提供有关如何完成此任务的任何建议吗?或者关于在codeigniter中路由自定义CMS的任何建议?

0 投票
3 回答
780 浏览

php - 代码点火器路由

我目前正在为客户开发 CMS,并且我将使用 Codeigniter 来构建它,它只是一个快速项目,所以我不是在寻找一个强大的解决方案。

要创建页面,我将根据与 mysql 表中的 slug 匹配的 slug 保存页面详细信息并拉取正确的页面。

但是,我的问题是,为了使它起作用,我必须将这个 slug 从控制器的 URL 传递给模型,这意味着我在 URL 中也有我不想要的控制器是否可以删除来自带有路由的 URL 的控制器?

所以

/page/我们的故事

变成

/我们的故事

这可能吗

0 投票
3 回答
322 浏览

codeigniter - 从 Code Igniter URL 中取出 index.php

我对 Code Igniter 非常陌生(就像我刚刚完成了他们的“官方”视频教程一样),我想知道是否有一种方法可以稍微清理一下 URL。

基本上,是否有一些设置可以将“index.php”排除在 URL 之外?

所以代替这个...

http://localhost/codeigniter/index.php/blog/comments/

...你看到这个:

http://localhost/codeigniter/blog/comments/

还是我必须自己用 .htaccess 重写 URL?

0 投票
3 回答
4276 浏览

php - Codeigniter:在不使用 $_GET 的情况下实现搜索过滤器

我有一个应用程序,其中包含一个名为项目的表,我希望能够在该表上进行搜索。我更喜欢使用现有的方法来调用模型来获取查询结果。所以我刚才的 URL 格式是 example.com/projects/id/slug,对于所有项目来说,只是 example.com/projects。我想要一个将关键字作为字符串传递给方法的搜索表单。

我知道 CI 默认不允许 $_GET :

来自 CodeIgniter 的安全手册:

GET、POST 和 COOKIE 数据

CodeIgniter 根本不允许 GET 数据,因为系统使用 URI 段而不是传统的 URL 查询字符串(除非您在配置文件中启用了查询字符串选项)。全局 GET 数组在系统初始化期间由 Input 类取消设置。

我的问题是如何以这种方式将 URI 段与多个关键字一起使用?

我可以做一些类似搜索/关键字+第二个关键字+第三个关键字的事情吗?

无论如何使用表单将关键字从文本框中获取到上述格式?

谢谢,

比利