我正在尝试做一个特殊的重写规则 假设 ROOT 作为我的托管根。
我在 ROOT /文件夹
上将domain.tld设置为root当我在domain.tld根目录(文件夹)上运行的脚本中尝试此操作时:
RewriteRule sth/?$ ../file.php
它不起作用,因为我要离开域Root。但是,既然我在同一个主机上,它不应该工作吗?还有其他选择吗?我曾经听说过符号链接,它们适用于这里吗?
感谢您的精彩关注。
答案 0 :(得分:2)
因为我在同一个主机上,不应该有效吗?
不,如果你在托管服务上没关系。站点的文档根是apache将能够访问该站点的最上层目录。因此,当您将URL重写为../file.php
时,apache不能遍历任何高于文档根目录的URL。 这是非常有理由,因为它可以防止狡猾道德的人制作apache访问他们不应该看到的文件(例如../../../../../../etc/passwd
)
你唯一能做的就是将file.php放在你的文档根目录中,或者创建一个包含它的脚本:
require ../file.php
或
include ../file.php
然后在重写规则中调用该脚本。