我正在使用共享托管平台,该平台不允许编辑或访问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
所以问题是:如何在域内提供域根之外的文件?这甚至可能吗?这是否可以使用符号链接?
答案 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/