Apache2中的嵌套URL和重写规则

时间:2009-09-16 01:27:38

标签: mod-rewrite apache2 twiki

我需要一些关于重写规则和嵌套URL的帮助。

我正在使用TikiWiki访问我的网站,并且正在为我的项目设置SE友好URL。具体来说,我对www.example.com/projects有以下重写规则,指向列出示例中托管的所有项目的页面。

RewriteRule ^Projects$  articles?type=Project  [L]

这很好用。

现在,我想指出www.example.com/projects/project1指向一个特定的项目。 我有这个重写规则

RewriteRule ^(Projects/Project1)$     tiki-read_article.php?articleId=6

这有效,但部分有效。内容全部呈现为文本,但主题 - images / css等都是折腾 - 页面完全是文本。

我理解这种情况会发生'因为主题/ css / images中的相对路径都将Projects作为基本文件夹而不是网站的根目录。

我不想触摸CMS部分 - 更改文件中的主题/ css /图像路径,更多是出于可升级的原因。

有人可以帮助我理解并编写规则,以便上述嵌套URL有效吗?

此致 拉达

2 个答案:

答案 0 :(得分:0)

您需要更改CMS或为主题/ CSS /图像文件编写重写规则。例如,如果您的图片位于网站的/images/目录中,请尝试

RewriteRule ^Projects/(themes/.*)$ \1

或者更好

Alias /Projects/themes /themes

但是,如果是我,我会编辑CMS配置。

答案 1 :(得分:0)

相对URL在基本URL(即当前文档的URL)的基础上解析为绝对URL。因此,在您的情况下,基本网址为/projects/project1而不是/projects,尽管您的文件实际位于此处。因为客户端仅使用URL并且不了解实际的文件系统。当前文档的URL为/projects/project1

因此,使用带有绝对URL路径(/projects/css/…)的URL引用而不是相对路径。