当url没有以后缀.html结尾时,CodeIgniter失败

时间:2015-04-12 05:02:27

标签: php codeigniter

我是CodeIgniter的新手。我在我的localhost中设置了CI。本地主机/ MyProjects下/笨/欢迎/索引

我的config.php中的url_config是这样的:

$config['url_suffix'] = ".html";

当我访问URL时,例如

http://localhost/MyProjects/CodeIgniter/welcome/index

http://localhost/MyProjects/CodeIgniter/welcome/index.html

页面已加载。

我的问题是,当网址没有以后缀.html结尾时,如何设置CodeIgniter失败?
所以,当我这样输入时

http://localhost/MyProjects/CodeIgniter/welcome/index

请求将失败或重定向到禁止

2 个答案:

答案 0 :(得分:1)

尝试使用此方法重定向:

$this->load->helper('url'); 
if (preg_match("/.html/i", current_url())) {
    echo "A match was found.";
} else {
    // redirect(base_url());
    show_404(); //if you want to show page not found
}

放在function index() welcome.php控制器中的{{1}}内。

答案 1 :(得分:0)

感谢您的解决方案,但我对您的解决方案进行了一些修改

if (preg_match("/.html/i", $_SERVER['REQUEST_URI'])) {
    echo "A match was found.";
} else {
    // redirect(base_url());
    show_404(); //if you want to show page not found
}

因为如果我使用current_url()函数,那么CodeIgniter始终会提供.html中设置的$config['url_suffix']='.html';扩展名 所以我使用$_SERVER['REQUEST_URI'],因为它提供了地址栏中的实际内容。

感谢您的建议,我的问题得到了解决。如果你来自印度尼西亚,makasih gan