这是我目前的.htaccess:
Options +FollowSymLinks +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]
我的配置文件:
$config['base_url'] = 'http://localhost/argh/';
$config['index_page'] = '';
例如,当我点击关于我们的链接时,它看起来像这样:
http://localhost/argh//about
(argh和about之间的2个正斜线)
有什么建议吗? :)
编辑:
不确定,但这看起来像Codeigniter问题,因为函数:
function site_url($uri = '')
{
if ($uri == '')
{
return $this->slash_item('base_url').$this->item('index_page');
}
if ($this->item('enable_query_strings') == FALSE)
{
$suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix');
return $this->slash_item('base_url').$this->slash_item('index_page').$this->_uri_string($uri).$suffix;
}
else
{
return $this->slash_item('base_url').$this->item('index_page').'?'.$this->_uri_string($uri);
}
}
更准确地说:
return $this->slash_item('base_url').$this->item('index_page');
在以下时间返回base_url:
$config['index_page'] = '';
这就是为什么上一个例子以这样结束的原因:
http://localhost/argh//about
答案 0 :(得分:2)
检查你是不是在写:
base_url().'/about'
在您的查询中 - base_url()将使用配置文件中的/
另外,删除第二个。从这一行:
RewriteRule ^(.*)$ ./index.php/$1 [L]
阅读:
RewriteRule ^(.*)$ /index.php/$1 [L]
答案 1 :(得分:0)
在.htaccess文件中使用
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
将此用作基本网址
$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/argh';
并使用路径作为表单操作
<form method="post" action="<?php echo base_url();?>Your_Controller_Name">;
for href使用此
<a href="<?php echo site_url("Controller_Name/Action_name"); ?>">About Us</a>
答案 2 :(得分:0)
在系统中更改此内容 - &gt; url_helper.php文件
rtrim($CI->config->site_url($uri),'/');
答案 3 :(得分:0)
以防万一将来有人遇到相同的问题:
由于重定向的方式,我遇到了同样的问题,例如,成功登录后,即使删除了 header("Location:".site_url()."/admin/home");
,我仍然使用了 index.php
来自 $config['index_page']=''
的我一直得到 http://example.com//admin/home
解决方案:
使用CI提供的 redirect()
功能,而不使用 header('');
即
更改:从 header("Location:".site_url()."/admin/home");
更改为 redirect('/admin/home')