【问题标题】:Can only navigate to a page once, then I receive 404只能导航到一个页面,然后我收到 404
【发布时间】:2012-04-30 08:16:36
【问题描述】:

之前有人帮我解决了.htaccess 问题,以便我可以从网址中删除index.php。然而,虽然这似乎有效,但我不确定它是否完全有效,除非这是我做错的事情(可能 - PHP/CI/WAMP 的新手,本周五才开始写)。

我在 Windows 7 机器上使用 CI 和 WAMP。这是我的.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|css)
RewriteRule ^(.*)$ index.php/$1 [NC,L]

我去查看该网站的基本网址是:

localhost/forum/

我在顶部有一些菜单项。其中一个是Forum,当它写出来时,链接是:

<a href="<?php echo base_url(); ?>

我的配置文件中没有设置 base_url。但是当我将鼠标悬停在链接上时,它会显示:

localhost/Forum/

当我在 Chrome 中检查元素时,它会显示:

<a href="http://localhost/Forum/">

我有一个 div,它是一个指向子论坛的链接。在html中是这样写的:

<a href='$record->name/'>

当我将鼠标悬停在 div 上时,它显示它将转到:

localhost/Forum/Site/

当我检查它说它要的元素时:

<a href="Site/">

现在,我可以在那里启动 Mozilla 或 Chrome,单击站点,它会转到我想要的位置。然后我可以点击论坛,它会返回。但是,如果我再次单击站点,它将转到 404 页面。然后,如果我关闭浏览器并重新打开它,它会再次工作一次,然后做同样的事情。我不知道这里发生了什么。当我输入这个时,我将我的基本 url 设置为http://localhost/Forum,即使这样也没有做任何事情。

更新

我编辑了我的 base_url 并解决了这个问题。最后我忘记了/

【问题讨论】:

  • 您在访问论坛并返回后检查过链接元素吗?还是就在您第一次测试之前?
  • 您可以删除 .htaccess 文件并确保链接在实施之前有效吗?另外,您能否验证他们的链接是否在您的子页面中出现故障?您是否第二次验证了链接(当您将鼠标悬停在链接上时)?我很好奇第二次链接的内容是否类似于 localhost/forum/forum/site
  • @TheOx - 当代码为 &lt;a href='".base_url()."'$record-&gt;name/'&gt; 时,我不小心检查了该元素。我更新了我的帖子以显示检查元素显示&lt;a href="Site/"&gt;。但是当我点击站点,然后论坛,然后我再次检查所有内容时,一切看起来都完全一样。

标签: php .htaccess codeigniter url


【解决方案1】:

请改用site_url()base_url() 主要用于链接到 Javascript 和 CSS 等媒体。

<a href="<?= site_url('forum'); ?>">Forum</a>

<a href="<?= site_url('forum/' . $Category->CategoryID . '/' . url_title($Category->Title)); ?>"><?= $Category->Title; ?></a>

更多信息请参见http://codeigniter.com/user_guide/helpers/url_helper.html

HTH

【讨论】:

  • 其实我发现了这个问题。我的 base_url() 末尾没有/。我的同事帮我找到了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-08
  • 2021-03-24
  • 1970-01-01
  • 2018-01-03
  • 2018-06-26
相关资源
最近更新 更多