idna convert the whole URI for uri's in docroot as redirect, fixes #1654

Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann (d00p)
2016-09-22 07:46:50 +02:00
parent 98c8f519a6
commit 9799e05ce4
4 changed files with 14 additions and 4 deletions

View File

@@ -860,7 +860,7 @@ class apache extends HttpConfigBase
$domain['documentroot'] = trim($domain['documentroot']);
if (preg_match('/^https?\:\/\//', $domain['documentroot'])) {
$corrected_docroot = $this->idnaConvert->encode($domain['documentroot']);
$corrected_docroot = $this->idnaConvert->encode_uri($domain['documentroot']);
// Get domain's redirect code
$code = getDomainRedirectCode($domain['id']);
@@ -881,7 +881,7 @@ class apache extends HttpConfigBase
$vhost_content .= ' RewriteRule ^/(.*) ' . $corrected_docroot . '$1' . $modrew_red . "\n";
$vhost_content .= ' </IfModule>' . "\n";
$vhost_content .= ' <IfModule !mod_rewrite.c>' . "\n";
$vhost_content .= ' Redirect ' . $code . ' / ' . $this->idnaConvert->encode($domain['documentroot']) . "\n";
$vhost_content .= ' Redirect ' . $code . ' / ' . $corrected_docroot . "\n";
$vhost_content .= ' </IfModule>' . "\n";
} else {

View File

@@ -430,7 +430,7 @@ class lighttpd extends HttpConfigBase
if (preg_match('/^https?\:\/\//', $domain['documentroot'])) {
$vhost_content .= ' url.redirect = (' . "\n";
$vhost_content .= ' "^/(.*)$" => "' . $this->idnaConvert->encode($domain['documentroot']) . '$1"' . "\n";
$vhost_content .= ' "^/(.*)$" => "' . $this->idnaConvert->encode_uri($domain['documentroot']) . '$1"' . "\n";
$vhost_content .= ' )' . "\n";
} else {

View File

@@ -470,7 +470,7 @@ class nginx extends HttpConfigBase {
// if the documentroot is an URL we just redirect
if (preg_match('/^https?\:\/\//', $domain['documentroot'])) {
$uri = $this->idnaConvert->encode($domain['documentroot']);
$uri = $this->idnaConvert->encode_uri($domain['documentroot']);
if (substr($uri, -1) == '/') {
$uri = substr($uri, 0, -1);
}