amu 发表于 2013-4-8 11:47:35

关于redirect的问题

现在我这边代码是放在站点根目录下面的一个子目录里面的,如:site1

htaccess把 site1 和 index.php隐藏了

这两个设置都为空
$config['base_url']        = '';
$config['index_page'] = '';

我用 redirect 跳转,如:redirect('/admin/login');

结果给跳到这样的地址了:http://xxx.com/site1/admin/login
但是我是想要的是这样的:http://xxx.com/admin/login


这个问题要怎么解决啊?大家帮个忙咯

王族复兴 发表于 2014-4-19 17:55:19

redirect( base_url('/admin/login') );

用这种形式即可,我的网站下面的子网站都这么用。
详见www.qddian.com和www.qddian.com/yishengpin

amu 发表于 2013-4-8 12:20:57

$config['base_url']      = '/';

这样设置可以解决问题,但是这样生成的 site_url 中没有http,域名等那一块。不知道对程序有没有什么影响?

叶凡 发表于 2013-4-8 12:24:40

现在我这边代码是放在站点根目录下面的一个子目录里面的,如:site1

htaccess把 site1 和 index.php隐藏了
楼主此描述一点也不详细。

叶凡 发表于 2013-4-8 12:26:44

{:soso__3110130392203091378_3:}$config['base_url']      = '';
$config['index_page'] = '';
这里已经可以忽略index.php 了。你site1是文件夹。那你就要配置routes

$route['admin/login'] = "site1/admin/login";
不知楼猪可行否?

Altair 发表于 2013-4-8 12:34:17

redirect('http://xxx.com/admin/login');    用绝对地址吧?

Hex 发表于 2013-4-8 13:06:42

这样的话 CI 就不能自己判断 base_url 了,就要自己设置 base_url 为 http://domain.com/site1/

amu 发表于 2013-4-8 15:02:27

叶凡 发表于 2013-4-8 12:24 static/image/common/back.gif
现在我这边代码是放在站点根目录下面的一个子目录里面的,如:site1

htaccess把 site1 和 index.php隐藏 ...

嗯,不好意思,是这样子的,域名:xxx.com

程序实际所在目录:/site1/
入口文件:index.php

原本地址栏中的url是这样子的:http://xxx.com/site1/index.php/admin/
我用htaccess把地址栏中的url改造成了这样子:http://xxx.com/admin/
这个与路由无关,我需要是隐藏 url 中的 site1 和 index.php,已经做好了。

程序其实运行没有任何问题。只是在用redirect的时候。跳转之后 url 中又出现了 site1,这不是我想要的。

amu 发表于 2013-4-8 15:04:52

Altair 发表于 2013-4-8 12:34 static/image/common/back.gif
redirect('http://xxx.com/admin/login');    用绝对地址吧?

我希望可以智能一些,这样写的话,程序中很多地方都会出现这个域名。事实上在实际使用中那个域名应该是不确定的。至少我在本机测试的时候使用的域名(修改host得到的)就和真实域名不一样。我不可能每次都全部替换一下。

amu 发表于 2013-4-8 15:11:34

Hex 发表于 2013-4-8 13:06 static/image/common/back.gif
这样的话 CI 就不能自己判断 base_url 了,就要自己设置 base_url 为 http://domain.com/site1/ ...

当前情况下,我不改动config中的$config['base_url'],base_url结果已经是 http://xxx.com/site1/了,就是因为base_url是这样子的,所以在 redirect('/admin/login') 的时候产生的 url 是 http://xxx.com/site1/admin/login 但我不想要 site1 。所以 $config['base_url'] 设成 http://xxx.com 是没有问题的。

但是不知道有没有方法可以不用写得这么死。因为我现在是在写通用网站后台。那就意味着每应用一个网站都要改动这个

amu 发表于 2013-4-8 15:19:40

我晕了,光想到怎么设置怎么设置的,直接这样搞定:

$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/';
页: [1] 2 3
查看完整版本: 关于redirect的问题