Falko Timme
2014-03-08 b5b6136d9ebbc5bcedbd22f9b2efba4deb4b45ff
- Fixed FS#3365 - Valid nginx rewrite rules are rejected with "Invalid Rewrite Rules" message
2 files modified
15 ■■■■■ changed files
interface/web/sites/web_domain_edit.php 3 ●●●●● patch | view | raw | blame | history
server/plugins-available/nginx_plugin.inc.php 12 ●●●●● patch | view | raw | blame | history
interface/web/sites/web_domain_edit.php
@@ -691,6 +691,9 @@
                    if(trim($rewrite_rule_line) == '') continue;
                    // rewrite
                    if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
                    if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
                    if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
                    if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
                    // if
                    if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $rewrite_rule_line)){
                        $if_level += 1;
server/plugins-available/nginx_plugin.inc.php
@@ -986,6 +986,18 @@
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
                        continue;
                    }
                    // if
                    if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $custom_rewrite_rule_line)){
                        $final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);