我正在尝试构建一个mod_rewrite
规则,其中重写目标是Web根目录之外的绝对路径,例如
RewriteRule ^manual(/(.*))?$ /www/htdocs/customername/manual/$2 [L]
我需要这样做,因为我无法在Alias
上下文(共享托管)中使用.htaccess
。
有些回应暗示这根本不存在。
这是真的吗?我在手册中找不到任何明确的信息。
有人可以澄清绝对路径何时可能,何时不是?
答案 0 :(得分:5)
当然可以在服务器配置中使用绝对文件路径。
但是,您无法在.htaccess
文件中执行此操作,因为这样您就可以访问文档根目录之外的文件,甚至是应该受到{{{1}保护的其他客户的文件{1}}阻止。
答案 1 :(得分:0)
RewriteRule中的替换是一个URL路径。替换中的绝对路径是绝对URL路径,而不是绝对文件路径。如果您无法引用资源(即它没有URL),则重写引擎无法帮助您。
相反,尝试创建符号链接,但您需要启用FollowSymLinks或SymLinksIfOwnerMatch option。如果您没有shell访问权限,则可以编写脚本来创建符号链接。