这是非常基本的,但无法通过Google-fu或实验找到答案。
我在大学网站上的个人网页的控制方式如下:我在服务器的/home/myname
文件夹中有写访问权限,/home/myname/WWW
的内容可以在互联网上阅读URL www.myuniversity.org/~myname
,由Apache服务器提供。虽然我无法访问服务器的全局配置,但我们可以非常广泛地使用.htaccess文件。
默认的根域为www.myuniversity.org
,通常的“获取CSS”指令将是
<link rel="stylesheet" href="~myname/mystyle.css" type="text/css" media="screen">
我不喜欢这样,因为如果我移动到另一台主机,我将不得不返回所有文件并重写~myname/
部分。 (同样的问题适用于许多内部链接<a href=...>
。)
我正在寻找的是一种“半相对路径”,我告诉所有根,www.myuniversity.org/~myname/
而不是www.myuniversity.org
并且所有路径都从那里开始。< / p>
我以为我通过在.htaccess中添加以下行找到了解决方案:
RewriteBase /~myname/
然后通过
包含“便携式”CSS<link rel="stylesheet" href="mystyle.css" type="text/css" media="screen">
有效,但只在根文件夹中; www.myuniversity.org/~myname/foo.html
会找到CSS但www.myuniversity.org/~myname/sub/fol/ders/bar.html
不会。
我可能错误地认为RewriteBase应该做什么,但我认为它只是将其参数预先设置为来自内部页面的任何调用。
具有“半相对”路径的可移植文件集的解决方案(如果存在)是什么(即路径作为来自给定根的绝对路径给出,但根可以设置在单个点并且需要与域根不匹配)?
我看过Website css and javascript are not accessible within their respective folders有类似症状,但根本原因不同,以及Using htaccess rewrite to make a subdirectory be its own root for root relative path requests,我并不完全明白。