如何通过符号链接使用域根目录外的路径/目录而不访问域配置?

时间:2018-03-06 14:36:32

标签: apache .htaccess symlink

我正在使用共享托管平台,该平台不允许编辑或访问Apache配置文件。

目标是从两个指向不同域根的不同域访问相同的文件:

test.example.com     --->   /test_root/web
public.example.com   --->   /public_root/web

现在,我想使用test.example.com/some/files/...public.example.com/some/files/...

访问相同的文件

当然,我只需将文件复制到/test_root/web/some/files/.../public_root/web/some/files/...,但这显然只是一个例子。实际上,文件是一个帮助台系统,应该整合到测试和公共站点。复制文件包括维护两个不同的系统等。

目标是将文件放在两个域根之外的某个位置,并从两个域中提供它们:

/test_root/web/some/files     --->   /path/to/some/files
/public_root/web/some/files   --->   /path/to/some/files

我创建了符号链接来实现这个(ln -s ...),但这没有用。当我访问域名时(例如test.example.com/some/files),我只会得到一个空白页面而没有任何信息出错的地方。

我认为Apache没有配置为遵循符号链接。如果不访问Apache配置,我既不能检查也不能修复它。

将符号链接添加到.../web/.htacess没有任何区别:

// test_root/web/.htaccess
Options +FollowSymLinks

所以问题是:如何在域内提供域根之外的文件?这甚至可能吗?这是否可以使用符号链接?

1 个答案:

答案 0 :(得分:1)

.htaccess文件中添加此内容。

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} test.example.com/path/to/files [NC]
RewriteRule ^(.*)$ http://public.example.com/path/to/files [R=301,NC]

测试这段代码。 /path/to/files必须位于/public_root/web/之下。
/public_root/web/path/to/files/

这样的东西