0

就在我以为我开始理解 mod rewrite 的时候,我发现了两个问题,虽然不同,但我怀疑其原因相同。我将它们分开发布 - 这是第一个问题:

我有一个本地主机站点。所有文件(包括 .htaccess)都在同一个目录中。

我有这个规则:

RewriteRule ^mytest/([A-Za-z0-9-]+)/?$ companies.php?page=$1 [L]

我有一个菜单链接:

<a href="mytest/ibm" title="My test.... etc.

当我点击我连接到的链接时:

localhost/Mysite/mytest/ibm

它对应于包含 IBM 信息的公司.php 页面。到目前为止,一切都很好。问题是,当我在“mytest”页面中并将鼠标悬停在我看到的同一个菜单链接上时:

localhost/Mysite/mytest/mytest/ibm

这当然会导致 404 错误。

问题是:这个额外的“mytest”来自哪里?

我已经在所有意义上修改了规则(或者至少在我看来我有)但没有成功。我没有忽略一些简单的事情——但究竟是什么?

4

1 回答 1

0

问题确实是由于相对链接的问题。
在更改为重写的 URL 时,我替换了旧的:

<li><strong><a href="companies.php?page=companies" title="Company histories organized by….

由新:

<li><strong><a href="company/list" title=" Company histories organized by….

到目前为止,该网站工作得很好,因为我已经把头发扯了 2 天,试图让我重写的 URL 正常工作,所以它必须是负责的 mod 重写。

我忽略的是菜单文件位于包含文件夹中。

感谢 miah 的建议,我退后一步,将我的研究重新定位于相对链接,并发现添加了这一行:

<base href="http://localhost/Mysite/"></base>

在我的 menu.php 文件顶部解决了我的问题。

生活就是这么简单。当它起作用时……</p>

于 2013-08-26T20:08:37.917 回答