Htaccess 重写至上一级文件

Htaccess 重写至上一级文件

我在子域中有一个 htaccess,其规则如下:

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

因此,基本上我想将来自子域中的 feed 的请求重定向到位于主域(仅上面一个目录)中的 image.php 文件。使用../似乎不像在 PHP 中那样有效。

那么我该如何重写父目录中的文件?

答案1

听起来,您已经位于子域的文档根目录中,该子域可能在其自己的虚拟主机中定义(恰好指向主域文档根目录中的子目录)。

不幸的是,你不能使用 mod_rewrite 在文档根目录之上/之外进行内部重写.htaccess.htaccessRewriteRule 代换仅接受 URL 路径,而不是文件系统路径。但是,如果您在服务器配置中直接使用 mod_rewrite,则可以执行此操作。在服务器配置中,您可以指定文件系统路径作为替换(您需要明确包含完整路径,不能使用相对路径,例如../image.php)。

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

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

相关内容