Htaccess重写到位于一个级别的文件

我有一个在以下规则的子域的htaccess:

RewriteEngine On RewriteBase / RewriteRule ^feed([0-9]+)$ ../image.php?id=$1 [L] 

所以基本上我想redirect请求从位于子域的饲料到位于主域(只是一个目录上面)的image.php文件。 使用../似乎不像PHP中的工作。

那么我怎么能重写到父目录中的文件?

通过它的声音,你已经在你的子域的文档根目录,这可能是在它自己的虚拟主机(这恰好指向主域文档根目录下的一个子目录)中定义的。

不幸的是,你不能在.htaccess使用mod_rewrite在文档根目录之上/之外重写。 在.htaccessRewriteRule replace仅使用URLpath,而不是文件系统path。 但是,如果您直接在服务器configuration中使用mod_rewrite,则可以执行此操作。 在服务器configuration中,您可以指定文件系统path作为replace(您需要明确包含完整path,不能使用像../image.php这样的相对path)。

或者,在.htaccess你可以使用mod_proxy和mod_rewrite代理从你的子域到主域的请求。 但是,这可能仍然需要一些服务器configuration。 例如:

 RewriteRule ^feed([0-9]+)$ http://maindomain.com/image.php?id=$1 [P]