Apache 使用mod_rewrite重定向相对路径

Apache 使用mod_rewrite重定向相对路径,apache,mod-rewrite,Apache,Mod Rewrite,可能重复: 我的网站在.htaccess中有一系列重写规则,我正在对其进行重组 # Requests for http://example.com/contents/section/4/48/ # get redirected to http://example.com/courses RewriteRule ^content/section/4/48/$ /courses [R=301,L] 这很好,只是现在我把新的和未发布的站点放在/new/子目录中,所以在测试时,我需要规则重定向到/n

可能重复:

我的网站在.htaccess中有一系列重写规则,我正在对其进行重组

# Requests for http://example.com/contents/section/4/48/
# get redirected to http://example.com/courses
RewriteRule ^content/section/4/48/$ /courses [R=301,L]
这很好,只是现在我把新的和未发布的站点放在
/new/
子目录中,所以在测试时,我需要规则重定向到
/new/courses
,而不是
/courses
。。。基本上,我只希望它重定向到一个相对于.htaccess文件所在位置的URL

/home/user/www/new/.htaccess --> redirect to /new/courses
/home/user/www/.htaccess --> redirect to /courses

当我将/new/.htaccess文件移动到根目录时,我必须更改其中的每一行,这似乎是不对的。是否有我遗漏的东西?

未经测试-但您应该能够从目标中删除“/”,即

RewriteRule ^content/section/4/48/$ courses [R=301,L]

不幸的是,不行。它最终将文件系统路径添加到url中,如下所示:example.com/home/user/www/new/coursesHave您找到这个问题的答案了吗?显然没有。我甚至不记得我最后做了什么。这篇文章有一个正确的答案: