.htaccess在我不';我不想这样!

.htaccess在我不';我不想这样!,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在尝试获取.htaccess以重写我的站点的URL。例如: /Lessons/PhrasalVerbs/PVList/bringup 变成 /index.php?page=Lessons/PhrasalVerbs/PVList/bringup 这似乎是一个比较普遍的愿望,所以在浏览了互联网之后,我(困惑地读了抄袭)想到: 现在,一切正常,但出现在工具栏中的是第二个url,而不是第一个url。现在如果我把最后一行从 RewriteRule ^(.*)$ http://www.example

我正在尝试获取.htaccess以重写我的站点的URL。例如:

/Lessons/PhrasalVerbs/PVList/bringup
变成

/index.php?page=Lessons/PhrasalVerbs/PVList/bringup
这似乎是一个比较普遍的愿望,所以在浏览了互联网之后,我(困惑地读了抄袭)想到:

现在,一切正常,但出现在工具栏中的是第二个url,而不是第一个url。现在如果我把最后一行从

RewriteRule ^(.*)$ http://www.example.com/index.php?page=$1 [L,QSA]

现在地址栏看起来不错,但网站从看起来正确到丢失了大部分格式和图像。。。(不幸的是,我无法发布图像,或图像链接…)

此外,如果我再次单击“打开”页面的链接,url将从

/Lessons/PhrasalVerbs/PVList/bringup

所以这有点像是在重复


很可能很清楚,我完全不擅长重写mod_,我很困惑。由于这似乎是.htaccess的一个相当常见的用法,我希望有人能指出我愚蠢的错误

在进行URL重写时,这是一个非常常见的错误,与mod_rewrite无关

问题是您在文档中使用的是相对URL。而相对URL则由客户端使用基本URL解析,该基本URL是文档的URL,没有另行指定

因此,如果文档的URL路径是
/foo/bar
,并且其中有一个与相对URL
baz/qux
的链接,客户端将其解析为
/foo/baz/qux
,因为
baz/qux
是相对于
/foo/bar
而不是
/code>解析的


您可以通过使用绝对路径来解决此问题,即使用
/baz/qux
而不是
baz/qux
。或者使用显式更改基URI。但我不会这样做,因为它会影响所有相对URL,而不仅仅是相对URL路径。

嘿,谢谢!这大大有助于澄清问题。我继续使用基本元素,这很有效。我不完全理解你所说的“但我不会这么做,因为它会影响所有的相对URL,而不仅仅是相对URL路径”这句话的意思。但了解编程,它可能会反过来咬我一口。现在网站开始工作了。再次感谢@迈克尔·比森:我的意思是,新的基本URL也将适用于像
?foo
(仅限查询)或
#foo
(仅限片段)这样的URL。
RewriteRule ^(.*)$ /index.php?page=$1 [L,QSA]
/Lessons/PhrasalVerbs/PVList/bringup
/Lessons/PhrasalVerbs/PVList/Lessons/PhrasalVerbs/PVList/bringup