修改重写:url中的斜杠会导致奇怪的行为(WindowsXP/WAMP)


Mod rewrite : Slashes in url cause strange behavior (Windows XP / WAMP)

就在我以为我开始理解mod重写的时候,我发现了两个问题,尽管不同,但我怀疑它们有相同的原因。我会单独发布它们-这是第一个问题:

我有一个本地主机站点。所有文件(包括.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的信息的页面companies.php。到目前为止还不错。问题是,当我在"mytest"页面上,悬停在我看到的同一菜单链接上时:

localhost/Mysite/mytest/mytest/ibm

这当然会导致404错误。

问题是:这个额外的"神话"是从哪里来的?

我在所有意义上都修改了这个规则(或者至少在我看来我修改了),但没有成功。毫无疑问,我忽略了一些简单的事情——但到底是什么呢?

问题确实是由于相对链接的问题造成的
在更改为重写的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….

到目前为止,这个网站运行得还不错,因为我已经花了两天的时间试图让我重写的URL发挥作用,所以必须由mod重写来负责。

我忽略了菜单文件在include文件夹中。

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

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

在我的菜单顶部,php文件解决了我的问题。

生活就是这么简单。当它工作时…