【发布时间】:2015-07-20 15:54:52
【问题描述】:
- 我有一个默认控制器(页面)将页面重定向到主页
(下面的代码)。
- 如果我在重定向之前回显某些内容,它将起作用。
- 如果我在家庭控制器中回显任何内容,则不会显示任何 让我认为它没有到达家庭控制器。
- 如果我用家庭控制器中的代码替换重定向 工作正常。
- 代码在本地主机上运行良好,但始终提供内部服务器 服务器出错。
- 如果我加载模板而不是重定向,它可以正常工作。
添加 错误报告(E_ALL | E_WARNING | E_NOTICE); ini_set('display_errors', TRUE); 不打印任何东西。
无权访问 apache 日志。
页面控制器:
<?php
class Pages extends CI_Controller {
public function view($page = 'index')
{
if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
redirect('home', 'refresh');
}
}
?>
得到一个带有以下内容的 .htacces 文件我试图删除其中的内容仍然没有用,但我还是会放在这里:
RewriteEngine On
RewriteBase /site/
RewriteCond %{REQUEST_FILENAME} !/(application/views/templates/*/css|js|images/)/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Header set Access-Control-Allow-Origin "http://example.com"
我在配置中的基本 url 配置为站点 url,如
$config['base_url'] = 'http://example.com/';
不知道还能做什么,任何帮助将不胜感激。
提前致谢,
【问题讨论】:
-
您可以尝试将 base_url 设置为空吗?你能确认你的服务器上启用了 mod_rewrite 吗?
-
您好,感谢您的回复。使用 base_url 作为空不会改变任何东西。关于 mod_rewrite 这是一个非常好的提示,我不记得我必须在本地启用它。我可以访问的 apache 配置我看不到,但我向托管服务提交了一个请求来检查它。
-
您好,我收到了托管服务的反馈,默认情况下,每个主机都启用了 mod_rewrite,他们进行了测试,并且重定向正确,因此我们可以排除这种情况。
-
嗯。在本地一切正常吗?
-
找到了问题,感谢 Jeremy 的帮助,很抱歉浪费了您的时间。
标签: php codeigniter redirect