codeigniter中的奇怪链接行为

时间:2015-01-04 09:26:38

标签: php .htaccess codeigniter mod-rewrite hyperlink

这是让我质疑我的理智的问题之一。我使用php,codeigniter框架,在htaccess中使用mod重写从URL中删除index.php。

我在这个地址

http://localhost/health/users/bob/progress/

我点击了一个链接,将我带到

http://localhost/health/users/bob/progress/01-04-15

然后我点击链接,将我带回

http://localhost/health/users/bob/progress/

现在这是奇怪的事情。我点击之前带我去的相同链接

http://localhost/health/users/bob/progress/01-04-15

但相反,现在它带我去

http://localhost/health/users/bob/progress/progress/01-04-15

我现在已经完成了十几次这些步骤。这绝对是它给我的行为。它甚至发生在我完全刷新时。我实际上必须访问一个不同的地址,然后返回

获取链接
http://localhost/health/users/bob/progress/

再次正常工作。我猜测它与mod重写有关,或者与codeigniter框架中的其他一些重写行为有关。

2 个答案:

答案 0 :(得分:1)

我的猜测是你的链接看起来如下所示,因此它会被附加到当前网址

href="progress/01-04-15"

尝试使用绝对路径创建链接,最好使用来自codeigniter + progress / date的base_url或current_url附加链接。

href="http://localhost/health/users/bob/progress/01-04-15"

这样,您每次都会找到正确的链接,而不是将其附加到当前网址。

答案 1 :(得分:1)

我很确定你使用的链接的相对路径如下:

<a href="/somerelativepath">link here</a>

我建议您使用CI的base_url,以便链接变为绝对链接:

<a href="<?=base_url()?>/nowabsolutepath">link here</a>

在配置文件中设置了base_url。请告诉我们它是怎么回事!