一个不受欢迎的 url 在 CodeIgniter 中工作

An unwelcomed url is working in CodeIgniter

提问人:Onur 提问时间:6/19/2012 更新时间:6/19/2012 访问量:149

问:

我的问题是,一个不受欢迎的 url 像 www.domain.com/0 一样工作并向我显示主页。

此外,subdomain.domain.com/0 页面也像子页面一样工作。

我正在使用 codeigniter。我检查了路由.php,没有任何与零相关的内容。它与CI有关吗?0后缀有什么问题?

CodeIgniter 路由 DNS 子域

评论

0赞 NDBoost 6/19/2012
检查您的文件,如果没有主控制器的一些代码,很难分辨。.htaccess
0赞 danneth 6/20/2012
我不会把这个作为答案,因为我对第二部分不是 100% 确定。但是 1st 来自 CI 我们知道这一点。 真的,这实际上是在末尾添加一个 0 意味着调用,如果我没记错的话,在 PHP 中是有效的,即使该函数被定义为简单的。有更好知识的人希望可以证实这一点或教我一些东西。www.domain.comwww.domain.com/default_controllerwww.domain.com/default_controller/indexindex(0)default_controllerpublic function index()

答:

1赞 Robin Castlin 6/19/2012 #1

这是因为是一个空值。Codeigniter 检查 uri 是否为空。如果为空,则加载默认控制器。0

真正的问题是,这对你来说有什么关系?

$uri = '0';
if (empty($uri))
    echo 'Oh my! Lets load default controller!';

评论

0赞 Onur 6/20/2012
这似乎不太好。是否可以删除它或更改核心中的零设置?
0赞 Robin Castlin 6/21/2012
它对任何可访问的人有什么关系?您不引用该 URL,任何访问者都不会注意到它。我想如果这是必须的,你可以做一个。/0$route['0'] = 'errorz'
0赞 Onur 6/21/2012
实际上,以零结尾的页面正在被服务器索引。所以会发生重复。我认为这是一个问题。
0赞 Robin Castlin 6/21/2012
if ($this->uri->segment(1) === '0') redirect(trim(current_url(), '0/'), 'location', '301');如果您担心蜘蛛,会为您提供帮助。
0赞 Onur 6/21/2012
好的,似乎会有所帮助。但是我应该在哪里运行这段代码呢?我的意思是在哪个班级?因为我将在每个子域和基本域中使用它。