You can present a folder other than the physical Substance D root object as the "SDI root" to people. For example, if you have the following structure from your physical Substance D root:
root-- \-- folder1 | |-- folder2
You can present either
folder2 to the user as a virtual
root when people log in to the SDI.
To do so, you have to pass an
X-Vhm-Root header to SubstanceD in each
request. It's easiest to do this with Apache or another frontend web server.
Here's a sample configuration which assumes you are telling Apache to proxy to
a Substance D application that runs on localhost on port 6543:
<VirtualHost *:80> ServerAdmin firstname.lastname@example.org ServerName example.com ErrorLog /var/log/apache2/example.com-error.log CustomLog /var/log/apache2/example.com-access.log combined RewriteEngine On RewriteRule ^(.*) http://127.0.0.1:6543/$1 [L,P] ProxyPreserveHost On RequestHeader add X-Vhm-Root /folder1 </VirtualHost>
In the above configuration, when users log in on
the root they see in the SDI will be
/folder1 instead of the real root.
They will not be able to access the real root.
Note that retail requests (requests without
/manage) to the same hostname
will also be rooted at
This feature requires Pyramid version 1.4.4 or better.