codeigniter 中的奇怪 link 行为

Strange link behavior in codeigniter

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

我在这个地址

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

我单击 link 将我带到

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

然后我点击 link 返回

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

奇怪的是。我单击之前带我到

的相同 link
http://localhost/health/users/bob/progress/01-04-15

但是,现在它带我去

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

我现在已经完成了十几次这些步骤。这绝对是它给我的行为。当我进行全面刷新时甚至会发生这种情况。我实际上必须访问不同的地址,然后 return 才能在

获得 link
http://localhost/health/users/bob/progress/

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

我猜你的 link 看起来像下面这样,因此它被附加到当前的 url

href="progress/01-04-15"

尝试使用绝对路径制作您的 link,最好在其后附加 base_url 或来自 codeigniter 的 current_url + progress/date.

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

这样您每次都会得到正确的 link,而不是将其附加到当前 url。

我很确定您使用的是 link 的相对路径,类似于:

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

我建议您改用 CI 的 base_url,这样 link 就变成绝对值了:

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

base_url 已在您的配置文件中设置。请告诉我们进展如何!