Php codeigniter中的奇怪链接行为
这是一个让我怀疑自己是否理智的问题。我正在使用php,codeigniter框架,使用htaccess中的mod rewrite从URL中删除index.php 我在这个地址Php codeigniter中的奇怪链接行为,php,.htaccess,codeigniter,mod-rewrite,hyperlink,Php,.htaccess,Codeigniter,Mod Rewrite,Hyperlink,这是一个让我怀疑自己是否理智的问题。我正在使用php,codeigniter框架,使用htaccess中的mod rewrite从URL中删除index.php 我在这个地址 http://localhost/health/users/bob/progress/ 我单击一个链接,该链接将我带到 http://localhost/health/users/bob/progress/01-04-15 然后我点击一个链接,将我带回 http://localhost/health/users/bob
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 rewrite有关,要么与codeigniter框架中的其他重写行为有关。我猜你的链接看起来像下面这样,因此它会被附加到当前url中
href="progress/01-04-15"
尝试使用绝对路径创建链接,最好在链接后附加codeigniter+进度/日期中的基本url或当前url
href="http://localhost/health/users/bob/progress/01-04-15"
这样,您每次都可以访问正确的链接,而不是将其附加到当前url。我很确定您使用的链接的相对路径类似于:
<a href="/somerelativepath">link here</a>
我建议您改为使用CI的基本url,以便链接成为绝对链接:
<a href="<?=base_url()?>/nowabsolutepath">link here</a>
基本url已在配置文件中设置。请告诉我们进展如何 编程时不会出现奇怪的行为,除非您做了一些您无法理解的事情。您编写了代码吗?health controller下的用户函数(或users controller下的bob函数)是什么样子的?这肯定有效,并且base_url使我不必在移动到其他目录结构时更改代码,所以肯定是一个复选标记,但我绝对不明白是什么原因首先导致了这个问题。