From 3f766875805121f972d1f6a3ec70d38db60ccd17 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Thu, 15 Oct 2009 14:02:10 -0400 Subject: [PATCH] Fixed a problem with apache rewrite rules. --- server/plugins-available/apache2_plugin.inc.php | 20 ++++++++++++++++---- install/tpl/apache_ispconfig.conf.master | 6 ++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/install/tpl/apache_ispconfig.conf.master b/install/tpl/apache_ispconfig.conf.master index 49d0d9b..4f6d0da 100644 --- a/install/tpl/apache_ispconfig.conf.master +++ b/install/tpl/apache_ispconfig.conf.master @@ -13,4 +13,10 @@ Deny from all </Directory> +<Directory /> + AllowOverride None + Order Deny,Allow + Deny from all +</Directory> + diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index ead37fb..5f1d7cd 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -578,9 +578,15 @@ // Rewrite rules $rewrite_rules = array(); if($data["new"]["redirect_type"] != '') { + $data["new"]["redirect_path"] = str_replace('../','',$data["new"]["redirect_path"]); if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; if($data["new"]["redirect_type"] != 'R' && substr($data["new"]["redirect_path"],0,4) != 'http') { - $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web".realpath($data["new"]["redirect_path"]).'/'; + if($data["new"]["redirect_path"] == '/') { + $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web/"; + } else { + if(substr($data["new"]["redirect_path"],0,1) != '/') $data["new"]["redirect_path"] = '/'.$data["new"]["redirect_path"]; + $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web".$data["new"]["redirect_path"]; + } } $rewrite_rules[] = array( 'rewrite_domain' => $data["new"]["domain"], @@ -629,9 +635,15 @@ $app->log("Add server alias: $alias[domain]",LOGLEVEL_DEBUG); // Rewriting if($alias["redirect_type"] != '') { - if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; - if($data["new"]["redirect_type"] != 'L' && substr($data["new"]["redirect_path"],0,4) != 'http') { - $data["new"]["redirect_path"] = $data["new"]["document_root"]."/web".realpath($data["new"]["redirect_path"]).'/'; + $alias["redirect_path"] = str_replace('../','',$alias["redirect_path"]); + if(substr($alias["redirect_path"],-1) != '/') $alias["redirect_path"] .= '/'; + if($alias["redirect_type"] != 'R' && substr($alias["redirect_path"],0,4) != 'http') { + if($alias["redirect_path"] == '/') { + $alias["redirect_path"] = $data["new"]["document_root"]."/web/"; + } else { + if(substr($alias["redirect_path"],0,1) != '/') $alias["redirect_path"] = '/'.$alias["redirect_path"]; + $alias["redirect_path"] = $data["new"]["document_root"]."/web".$alias["redirect_path"]; + } } $rewrite_rules[] = array( 'rewrite_domain' => $alias["domain"], 'rewrite_type' => ($alias["redirect_type"] == 'no')?'':'['.$alias["redirect_type"].']', -- Gitblit v1.9.1