Skip to content

Commit b5b6136

Browse files
committed
- Fixed FS#3365 - Valid nginx rewrite rules are rejected with "Invalid Rewrite Rules" message
1 parent 1d6097a commit b5b6136

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

interface/web/sites/web_domain_edit.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,9 @@ function onSubmit() {
691691
if(trim($rewrite_rule_line) == '') continue;
692692
// rewrite
693693
if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
694+
if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
695+
if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
696+
if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $rewrite_rule_line)) continue;
694697
// if
695698
if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $rewrite_rule_line)){
696699
$if_level += 1;

server/plugins-available/nginx_plugin.inc.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -986,6 +986,18 @@ function update($event_name, $data) {
986986
$final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
987987
continue;
988988
}
989+
if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){
990+
$final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
991+
continue;
992+
}
993+
if(preg_match('@^\s*rewrite\s+(^/)?(\'[^\']+\'|"[^"]+")+(\$)?\s+\S+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){
994+
$final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
995+
continue;
996+
}
997+
if(preg_match('@^\s*rewrite\s+(^/)?\S+(\$)?\s+(\'[^\']+\'|"[^"]+")+(\s+(last|break|redirect|permanent|))?\s*;\s*$@', $custom_rewrite_rule_line)){
998+
$final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);
999+
continue;
1000+
}
9891001
// if
9901002
if(preg_match('@^\s*if\s+\(\s*\$\S+(\s+(\!?(=|~|~\*))\s+(\S+|\".+\"))?\s*\)\s*\{\s*$@', $custom_rewrite_rule_line)){
9911003
$final_rewrite_rules[] = array('rewrite_rule' => $custom_rewrite_rule_line);

0 commit comments

Comments
 (0)