mod_rewrite多个伪子目录

时间:2012-01-13 12:24:33

标签: apache mod-rewrite path subdirectory

对不起,如果这是一个非常愚蠢的问题 - 我无法在任何地方找到答案......

我将测试文件存储在名为“dev”的子目录中,并使用以下重写规则,以便/dev/VAR1/VAR2的请求将我带到/index.php?page=VAR1/VAR2,并请求/dev/VAR1/我会带我去/index.php?page=VAR1 (VAR1和VAR2是变量,文件夹/子目录实际上不存在)

RewriteBase /dev
RewriteRule ^([A-Za-z/\-]+)/$ index.php?page=$1

这样做很好 - 我的index.php正在获得正确的变量。问题是服务器或页面(或者我不明白......)认为我实际上在不存在的文件夹(或子目录)中是VAR1,所以我所有的亲戚(如果这是正确的词)地址的图像和链接和CSS和脚本等

<link rel="stylesheet" type="text/css" href="./sitefiles/mystyles.css" />

所有工作都好像是/dev/VAR1/sitefiles/mystyles.css - 基本上,服务器认为它实际上在'假'文件夹中。

有没有办法可以继续使用我的mod_rewrite使用这些相对地址,还是必须使用完整路径的'绝对'地址?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我们在配置中使用相同的东西并将假冒别名重写为index.php?something = $ 1我们必须将CSS文件放入DocumentRoot的/ styles /中并且不要使用相对的./ path使用绝对路径,如href =&#34; /sitefiles/mystyles.css"它应该工作正常。