mod_rewrite中的绝对文件路径 - 允许?

时间:2010-02-03 11:44:23

标签: apache mod-rewrite

这是this question.

的后续行动

我正在尝试构建一个mod_rewrite规则,其中重写目标是Web根目录之外的绝对路径,例如

RewriteRule ^manual(/(.*))?$ /www/htdocs/customername/manual/$2 [L]

我需要这样做,因为我无法在Alias上下文(共享托管)中使用.htaccess

有些回应暗示这根本不存在。

这是真的吗?我在手册中找不到任何明确的信息。

有人可以澄清绝对路径何时可能,何时不是?

2 个答案:

答案 0 :(得分:5)

当然可以在服务器配置中使用绝对文件路径。

但是,您无法在.htaccess文件中执行此操作,因为这样您就可以访问文档根目录之外的文件,甚至是应该受到{{{1}保护的其他客户的文件{1}}阻止。

答案 1 :(得分:0)

RewriteRule中的替换是一个URL路径。替换中的绝对路径是绝对URL路径,而不是绝对文件路径。如果您无法引用资源(即它没有URL),则重写引擎无法帮助您。

相反,尝试创建符号链接,但您需要启用FollowSymLinks或SymLinksIfOwnerMatch option。如果您没有shell访问权限,则可以编写脚本来创建符号链接。