noob的mod重写和相对url的问题

fra*_*bit 6 url mod-rewrite seo

我必须做一些非常错误的事情,因为无论我如何尝试或谷歌它,我找不到答案:(

所以,我想有一个像http:// localhost/BLUEPRINT/list/857 这样的URL来实际加载这样一个完美的工作URL:http://localhost/BLUEPRINT/list.php?lid = 857

我可以在.htaccess文件中写入重写规则,我可以读取lid变量.问题是list.php中的所有路径都是相对的.Css,图像,javascript等所以当SEO友好的网址加载所有这些项目都在BLUEPRINT/list/857/...

所以例如:<img src="images/logo.png" />在请求seo友好的url时实际上是这样的:<img src="list/857/images/logo.png" />

那我该怎么办?

我可能会尝试将页面中的所有路径转换为root相对(例如"/BLUEPRINT/images/logo.png")而不是相对路径.但是页面中有几十个,即使我这样做,它们也无法在实际服务器上运行,因为它可能是"/ images"而不是"/ BLUEPRINT/images".所以我不能只将我的文件上传到实际的服务器.

我有什么选择?所有这些精彩的脚本如wordpress,joomla等如何处理这个问题?我到底做错了什么?它让我疯狂!

Gum*_*mbo 3

您的新 URL 不\xe2\x80\x99t 具有相同的基本路径前缀。这意味着相对 URL 路径的解析方式不同。该引用images/logo.png现在解析/BLUEPRINT/list/images/logo.png为而不是 to /BLUEPRINT/images/logo.png

\n\n

要解决此问题,请在引用中使用绝对 URL 路径,例如:

\n\n
<img src="/BLUEPRINT/images/logo.png" />\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者,如果您不想将基本 URL 路径添加/BLUEPRINT/到所有引用元素,请使用以下命令设置基本 URL base

\n\n
<base href="/BLUEPRINT/" />\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,相对 URL 路径是从此基本 URL 而不是当前 URL 解析的。但请注意,更改基本 URL 会影响所有相对 URL。

\n