Php .htaccess中的Codeigniter URL路由问题
在你把它标为复制品之前,我已经试过了所有我能找到的解决办法 网址是 配置文件(如果我使用$config['base\u url']=''-它根本不起作用) .htaccess文件Php .htaccess中的Codeigniter URL路由问题,php,apache,.htaccess,codeigniter-2,Php,Apache,.htaccess,Codeigniter 2,在你把它标为复制品之前,我已经试过了所有我能找到的解决办法 网址是 配置文件(如果我使用$config['base\u url']=''-它根本不起作用) .htaccess文件 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond $1 !^(index\.php|assets|woff|eot|img|css|js|resources|robots\.txt) RewriteCond %{REQUEST_FILENAME} !
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(index\.php|assets|woff|eot|img|css|js|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/index/?$ $1 [L,R=301]
</IfModule>
这是我的控制器
class Tlc extends CI_Controller
public function view($page='index')
{
if ( ! file_exists(APPPATH.'/views/tlc/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
else
{
$this->load->view('tlc/templates/header.php');
$this->load->view('tlc/'.$page);
$this->load->view('tlc/templates/footer.php');
}
所以我基本上是想让菜单链接起作用。它们仅适用于完整url,即deltadigital.ca/index.php/tlc/view/about-us
它是CI 2.2.2,主机是1和1,我的视图文件位于views/tlc文件夹中
更新:删除了前导斜杠:
$route['([a-z]+)']=“tlc/view/$1”代码>好的,如前所述,我不是代码点火器大师。我只知道以下几点对我很有用:
配置:
$config['base\u url']=”http://www.deltadigital.ca/";
#或者使用$config['base_url']=“”;
$config['uri_protocol']=“请求_uri”;
$config['index_page']='';
路线:
$route['default_controller']=“tlc/view”;
$route['(:any)]=“tlc/view/$1”;
$route['404_override']=“”;
控制器:
基本URL是否应该为空?CI为您获得了…谢谢,但仍然不起作用。设置为空白后,我尝试了其他重写规则。那么这是服务器设置的问题吗?嗯,也许从第二条路由中删除前导斜杠?文件表明,将这些排除在外很重要。此外,您的基本URL应该用尾部斜杠定义:$config['base\u URL']=”http://www.deltadigital.ca/“
。是的,我添加了尾随斜杠…www.deltadigital.ca/我尝试了在网上找到的不同规则,我现在使用的是RewriteRule^(.*)$index.php?/$1[L,QSA]——因此它没有前导斜杠,仍然不起作用。如果我删除前导斜杠,它会给我500服务器错误,这表明.htaccess中有错误,带前导斜杠的只是给我的webhosts 404。不管怎样谢谢你,还是一样,现在不是404,而是500。我很高兴它对一些人有用。我会继续尝试(你可能看到我的更新了吗?你是否100%确定你使用的正是我在回答中的内容?)如果你得到的是500分,你的Apache错误日志中有什么?我确实看到了更新。这是一个字符对字符的复制。我做了复制和粘贴。谢谢您的时间,我想我看不到错误日志,我从1和1控制面板只能看到访问和邮件日志。
$route['default_controller'] = "tlc/view";
$route['/([a-z]+)'] = "tlc/view/$1";
$route['404_override'] = '';
class Tlc extends CI_Controller
public function view($page='index')
{
if ( ! file_exists(APPPATH.'/views/tlc/'.$page.'.php'))
{
// Whoops, we don't have a page for that!
show_404();
}
else
{
$this->load->view('tlc/templates/header.php');
$this->load->view('tlc/'.$page);
$this->load->view('tlc/templates/footer.php');
}