问题标签 [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 投票
3 回答
9667 浏览

.htaccess - Codeigniter 使用 base_url 重定向

我注意到anchor('controller/method')产生的结果与添加 base_url<a href="controller/method">的结果不同:anchor()

anchor('controller/method')

<a>

如何在我的控制器中实现同样的效果(锚点)?也就是说,在我的重定向中添加 base_url?

我问是因为我有一个调用另一个方法的表单method2,它有一个redirect('controller/method'). 但它错误地重定向到controller/controller/method2,然后如果再次提交表单,则重定向到controller/controller/controller/method2等等。

这就是为什么我想知道如何使用预先添加的 base_url 重定向到控制器/方法。redirect( base_url() . 'controller/method' )不起作用。

index_page 设置为:

base_url 设置为:

.ht 访问:

这是基于,因为 CI 手册提供的 .htaccess 不起作用。

有任何想法吗?

0 投票
2 回答
10464 浏览

php - Codeigniter:Base_url 似乎不起作用

我开发了一个简单的网站,它从 Twitter 公共时间线中获取推文,将它们缓存 60 秒等等。我最近将主机从 Hostgator 移动到 Mediatemple,我的网站之前在 Hostgator 上运行良好。

我的应用程序不使用数据库连接,也不使用任何形式的平面文件数据库。推文缓存在一个 XML 文件中,存储在根目录中,这并不重要。

如下所示,正在包含 url 助手(这是我来自 autoload.php 的助手行):$autoload['helper'] = array('url');

我还使用 .htaccess 指令从 URL 中删除了我的 index.php 文件,这再次在 Hostgator 上工作(请参阅下面的我的 .htaccess 代码):

在应用程序内部视图文件夹中的 home.php 视图文件中,我使用了函数 base_url(),该函数以前在我的视图文件中的 Hostgator 上工作,并在我的标题中附加了一个基本的 href 值:<base href="<?php echo base_url(); ?>" />

这是我的 base_url 值在 config.php 文件中的样子:

尽管似乎正在发生的事情是根本看不到 base_url。它似乎没有回显 base_url 的值,因为由于某种原因它似乎是空的。

让事情变得更奇怪的是,我在另一个名为“fetch.php”的视图文件中有一个链接,由于某种原因,它似乎正在剥离值(XSS 过滤已关闭):<a href="threetune/show"><img src="assets/images/cookie.jpg" /></a>threetune/show 部分不可见,并且我只看到这样的空 href 值<a href=""><img src="assets/images/cookie.jpg" /></a>

任何人都可能看到我可能做的任何错误,某种 Mediatemple 服务器限制或需要设置的 PHP.ini 标志吗?谢谢你,我希望我的描述性足够。

0 投票
3 回答
2852 浏览

php - 在 CodeIgniter 中进行 URI 路由的最佳方法?

因此,这是 CodeIgniter 网站 Forrst 上的一个示例:

http://forrst.com/posts/PHP_Nano_Framework_WIP_Just_throwing_some_ideas_o-mU8

看看那个漂亮的网址。您有根站点,然后posts是 ,然后是帖子标题和简短的摘录。这对于用户体验来说非常酷。

但是,的 CodeIgniter 站点的 URL 简直糟透了。例如

http://mysite.com/code/view/120

所以它访问控制器code,然后是函数view20最后是 Post ID(它基于它进行数据库查询)。

我意识到我可以做一些路由。因此,在我的 routes.php 文件中,我将以下内容放入:

$route['posts/(:num)'] = "code/view/$1";- 所以这将使http://mysite.com/posts/120与http://mysite.com/code/view/120相同。更好一点,我想你会同意的。

我的问题是- 我如何使用与 Forrst 类似的技术,从而将帖子的摘录实际上附加到 URL 中?我真的不明白这怎么可能。PHP 脚本如何确定它应该在数据库中查找什么,尤其是如果有多个具有相同标题的东西?

谢谢!

杰克

0 投票
2 回答
597 浏览

php - CodeIgniter + encodeURIComponent

我正在尝试检索在 codeigniter 函数中的查询字符串中发送的 url:

但是由于某种原因,http协议中的url总是缺少一个'/',我从日志中得到的是这样的:

0 投票
1 回答
89 浏览

regex - 让 codeigniter 在 $_GET 上运行?

我在 CI 处理 $_GET 时遇到了问题,并找到了克服它的方法。

问题是,你能在这里看到任何安全问题吗?

我有我的网址,就像

我在 CodeIgniter 上的默认控制器称为index

$_GET只要我 遵循class/function/default_controller.

这两个 URL 的工作:

问题是我希望这些也能工作

我的解决方案是在$_SERVER['REQUEST_URI'].

我不是正则表达式方面的专家,你能在这里看到可能的安全问题吗?

谢谢你。

0 投票
1 回答
217 浏览

php - 哪种文件结构最适合 codeigniter?

你好,我对我在codeigniter中的文件结构有一些想法。我现在正在做的是用我正在开发的项目创建一个文件夹,并将它命名为“myProject”,然后我将我的codeigiter文件夹放在那个文件中.然后一切都正常完成,就像在控制器文件夹上再次创建一个名为 myProject 的类...

这种结构有效,但它创建的 url 非常丑陋(例如在本地服务器中): http://localhost/myBlog/CodeIgniter_1.7.2/index.php/myBlog

它还会在我的根文件夹中产生一些问题......所以如果我的根目录中有一个 css 文件夹,我应该这样称呼它:“/myBlog/CodeIgniter_1.7.2/css/myBlogStyle.css”

而不是这样:“css/myBlogStyle.css”

您对使用 codeigniter 的正确方法有什么建议吗?提前致谢

0 投票
1 回答
270 浏览

codeigniter - 我的 url 数据没有传递给我的 codeigniter 控制器的函数

我正在使用的域是http://www.domainname.com/admin/users/edit/1

0 投票
1 回答
1980 浏览

codeigniter - 一台主机上的 Codeigniter + Opencart -- URI 路由问题

好的,我搜索了董事会,找不到任何具体的答案。网站和商店不一样。Codeigniter 已用于处理所有事情,所以现在我想使用 Opencart 添加一个商店,而 URI 路由是问题所在。

(其实我不是 CI 的粉丝,但是因为我之前的那个人用过,所以我没有别的选择,只能继续,现在我必须在 CI 上添加一个商店!)

我应该将网站与商店分开并将每个网站放入主机上的单独文件夹中并使用 .htaccess 重写规则来处理与每个 MVC 相关的 URI,还是可以做一些简单的事情?

0 投票
2 回答
654 浏览

codeigniter - codeigniter 多域设置问题

我正在尝试对 codeigniter 进行多域设置。

我需要支持这样的链接

www.site.com/users/username subdomain.site.com www.othersiteparkedonsite.com

在这 3 种不同的情况下,我想加载有关该案例的应用程序文件夹

index.php 中的以下代码仅适用于子域和域案例

但是如何识别第一个案例和子域????

使用代码,我只能使用根文件夹中的一个文件夹 /sites/ 并通过子域名或域名加载该文件夹,但是,如何进行路由,或使用 htaccess,以便我可以加载有关用户名、子域的应用程序文件夹,域和控制器???我的意思是我需要,如果我们去 www.site.com/users/usernameX

index.php 将加载 /usersites/usernameX 文件夹

如果子域来自

sub1.site.com 将加载应用程序文件夹

/subdomains/sub1_site_com

如果其他域停在同一文件夹中

www.otherdomain.com 将加载

/sites/otherdomain_com

www.site.com/somecontroller/somefunction 将从根目录中的主 /application 文件夹工作...

你能帮助我吗?

0 投票
3 回答
3160 浏览

codeigniter - 重新路由后默认控制器未加载

我有一个 codeigniter multistie 安装,我有这样的代码,我可以用这样的链接为网站提供服务

site.com/sites/sitename/controller/function/vars site.com/controller/function/vars/

subdom.site.com/controller/function/vars

挑战在于,路由

我开始使用链接,例如

site.com/sites/sitename/controller/function/vars site.com/controller/function/vars

我去的时候按主意

www.site.com/sites/sitename/

默认控制器未加载。

我制作了 config.php,以便关于链接结构,当我访问链接时

site.com/sites/sitename/controller/function/vars

然后

如果我去

site.com/controller/function/vars

然后

$config['base_url']="http://site.com/";

对于第二种情况,默认控制器可以完美加载。对于子站点情况不是/

我只得到404

该怎么办?

更新 2:

我有一个多文件夹设置。

当用户访问 www.site.com/sites/site_name

然后是应用程序的文件夹

/root_folder/usersites/site_name 已加载。

当用户只是 site.com/controller/function/var1/var2

默认应用程序文件夹是

/root_folder/应用程序已加载

当用户转到 sub1.site.com 应用程序文件夹时

/root_folder/domains/sub1_site_com 已加载

所以当我在地址栏中输入

http://site.com/sites/site_name

它应该就像没有 URI。并且应该加载默认控制器。