Line 156: |
Line 156: |
| | | |
| { | | { |
− | use esmith::AccountsDB;
| + | use esmith::AccountsDB; |
− | my $accounts = esmith::AccountsDB->open_ro;
| + | my $accounts = esmith::AccountsDB->open_ro; |
− |
| + | |
− | use esmith::DomainsDB;
| + | use esmith::DomainsDB; |
− | my $domains = esmith::DomainsDB->open_ro;
| + | my $domains = esmith::DomainsDB->open_ro; |
− |
| + | |
− | $OUT = "";
| + | $OUT = ""; |
− |
| + | |
− | my $ibay = $virtualHostContent;
| + | my $ibay = $virtualHostContent; |
− | my $basedir = "/home/e-smith/files/ibays/$ibay";
| + | my $basedir = "/home/e-smith/files/ibays/$ibay"; |
− | my $cgiBin = $accounts->get_prop($ibay, "CgiBin") || "";
| + | my $cgiBin = $accounts->get_prop($ibay, "CgiBin") || ""; |
− |
| + | my $ssl_domain = $accounts->get_prop($ibay, "SSL") || "disabled"; |
− | $OUT .= " DocumentRoot $basedir/html\n";
| + | |
− | | + | $OUT .= " DocumentRoot $basedir/html\n"; |
− | if ($cgiBin)
| + | |
− | {
| + | my $SSLPort = $modSSL{'TCPPort'} || '443'; |
− | $OUT .= " ScriptAlias /cgi-bin $basedir/cgi-bin\n";
| + | if (( $port ne $SSLPort ) && ( $ssl_domain eq 'enabled')) |
− | }
| + | { |
− | else
| + | my $portspec = ($SSLPort eq 443) ? "" : ":$SSLPort"; |
− | {
| + | $OUT .= " RewriteEngine on\n"; |
− | $OUT .=
| + | $OUT .= " RewriteRule ^/(.*|\$) https://%{HTTP_HOST}${portspec}/\$1 [R,L]\n"; |
− | " # To add cgi-bin ScriptAlias for this i-bay, run:\n"
| + | } |
− | . " # /sbin/e-smith/db accounts setprop $ibay CgiBin "
| + | |
− | . "enabled\n"
| + | if ($cgiBin) |
− | . " # /sbin/e-smith/signal-event console-save\n";
| + | { |
− | }
| + | $OUT .= " ScriptAlias /cgi-bin $basedir/cgi-bin\n"; |
− | $OUT .= "# Alias /files $basedir/files\n";
| + | } |
− |
| + | else |
− | if (($domains->get_prop($virtualHost, 'SystemPrimaryDomain') || 'no')
| + | { |
− | eq 'yes')
| + | $OUT .= |
− | {
| + | " # To add cgi-bin ScriptAlias for this i-bay, run:\n" |
− | my @ibays = $accounts->ibays;
| + | . " # /sbin/e-smith/db accounts setprop $ibay CgiBin " |
− | foreach my $ibay (@ibays)
| + | . "enabled\n" |
− | {
| + | . " # /sbin/e-smith/signal-event console-save\n"; |
− | my $key = $ibay->key;
| + | } |
− | next if $key eq $virtualHostContent;
| + | $OUT .= " # Alias /files $basedir/files\n"; |
− | my $basedir = "/home/e-smith/files/ibays/$key";
| + | |
− | my $cgiBin = $ibay->prop("CgiBin") || "";
| + | if (($domains->get_prop($virtualHost, 'SystemPrimaryDomain') || 'no') |
− | my $name = $ibay->prop("Name") || "";
| + | eq 'yes') |
− |
| + | { |
− | $OUT .= "\n";
| + | my @ibays = $accounts->ibays; |
− | $OUT .= " # $key ibay ($name)\n";
| + | foreach my $ibay (@ibays) |
− | $OUT .= "\n";
| + | { |
− |
| + | my $key = $ibay->key; |
− | if ($cgiBin)
| + | next if $key eq $virtualHostContent; |
− | {
| + | my $basedir = "/home/e-smith/files/ibays/$key"; |
− | $OUT .= " ScriptAlias /$key/cgi-bin $basedir/cgi-bin\n";
| + | my $cgiBin = $ibay->prop("CgiBin") || ""; |
− | }
| + | my $name = $ibay->prop("Name") || ""; |
− | else
| + | |
− | {
| + | $OUT .= "\n"; |
− | $OUT .=
| + | $OUT .= " # $key ibay ($name)\n"; |
− | " # To add cgi-bin ScriptAlias for this i-bay, run:\n"
| + | $OUT .= "\n"; |
− | . " # /sbin/e-smith/db accounts setprop $key CgiBin "
| + | my $SSLPort = $modSSL{'TCPPort'} || '443'; |
− | . "enabled\n"
| + | |
− | . " # /sbin/e-smith/signal-event console-save\n";
| + | if (( $port ne $SSLPort ) && (($ibay->prop('SSL') || 'disabled') eq 'enabled')){ |
− | }
| + | my $portspec = ($SSLPort eq 443) ? "" : ":$SSLPort"; |
− |
| + | $OUT .= " RewriteEngine on\n"; |
− | $OUT .= " Alias /$key/files $basedir/files\n";
| + | $OUT .= " RewriteRule ^/$key(/.*|\$) https://%{HTTP_HOST}${portspec}/$key\$1 \[L,R\]\n"; |
− |
| + | } |
− | # Make sure this one is last since it's a prefix of the above
| + | if ($cgiBin) |
− | # aliases. If we put it first, it would get expanded before the
| + | { |
− | # other aliases, creating problems.
| + | $OUT .= " ScriptAlias /$key/cgi-bin $basedir/cgi-bin\n"; |
− |
| + | } |
− | $OUT .= " Alias /$key $basedir/html\n";
| + | else |
− | }
| + | { |
− | $OUT .= " # No ibays in system\n" unless @ibays;
| + | $OUT .= |
− | }
| + | " # To add cgi-bin ScriptAlias for this i-bay, run:\n" |
− | }
| + | . " # /sbin/e-smith/db accounts setprop $key CgiBin " |
| + | . "enabled\n" |
| + | . " # /sbin/e-smith/signal-event console-save\n"; |
| + | } |
| + | |
| + | $OUT .= " Alias /$key/files $basedir/files\n"; |
| + | |
| + | # Make sure this one is last since it's a prefix of the above |
| + | # aliases. If we put it first, it would get expanded before the |
| + | # other aliases, creating problems. |
| + | |
| + | $OUT .= " Alias /$key $basedir/html\n"; |
| + | } |
| + | $OUT .= " # No ibays in system\n" unless @ibays; |
| + | } |
| + | } |
| + | |
| | | |
| | | |