@@ -966,7 +966,7 @@ function update($event_name,$data) {
966966 unset($ tmp_redirect_path );
967967 unset($ tmp_redirect_path_parts );
968968 }
969- $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' .$ data ['new ' ]['domain ' ],
969+ $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' .$ this -> _rewrite_quote ( $ data ['new ' ]['domain ' ]) ,
970970 'rewrite_type ' => ($ data ['new ' ]['redirect_type ' ] == 'no ' )?'' :$ data ['new ' ]['redirect_type ' ],
971971 'rewrite_target ' => $ data ['new ' ]['redirect_path ' ],
972972 'rewrite_exclude ' => $ rewrite_exclude );
@@ -987,7 +987,7 @@ function update($event_name,$data) {
987987 unset($ tmp_redirect_path );
988988 unset($ tmp_redirect_path_parts );
989989 }
990- $ rewrite_rules [] = array ( 'rewrite_domain ' => '^www. ' .$ data ['new ' ]['domain ' ],
990+ $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' . $ this -> _rewrite_quote ( ' www. ' .$ data ['new ' ]['domain ' ]) ,
991991 'rewrite_type ' => ($ data ['new ' ]['redirect_type ' ] == 'no ' )?'' :$ data ['new ' ]['redirect_type ' ],
992992 'rewrite_target ' => $ data ['new ' ]['redirect_path ' ],
993993 'rewrite_exclude ' => $ rewrite_exclude );
@@ -1009,7 +1009,7 @@ function update($event_name,$data) {
10091009 unset($ tmp_redirect_path );
10101010 unset($ tmp_redirect_path_parts );
10111011 }
1012- $ rewrite_rules [] = array ( 'rewrite_domain ' => $ data ['new ' ]['domain ' ],
1012+ $ rewrite_rules [] = array ( 'rewrite_domain ' => ' (^|\.) ' . $ this -> _rewrite_quote ( $ data ['new ' ]['domain ' ]) ,
10131013 'rewrite_type ' => ($ data ['new ' ]['redirect_type ' ] == 'no ' )?'' :$ data ['new ' ]['redirect_type ' ],
10141014 'rewrite_target ' => $ data ['new ' ]['redirect_path ' ],
10151015 'rewrite_exclude ' => $ rewrite_exclude );
@@ -1031,7 +1031,7 @@ function update($event_name,$data) {
10311031 unset($ tmp_redirect_path );
10321032 unset($ tmp_redirect_path_parts );
10331033 }
1034- $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' .$ data ['new ' ]['domain ' ],
1034+ $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' .$ this -> _rewrite_quote ( $ data ['new ' ]['domain ' ]) ,
10351035 'rewrite_type ' => ($ data ['new ' ]['redirect_type ' ] == 'no ' )?'' :$ data ['new ' ]['redirect_type ' ],
10361036 'rewrite_target ' => $ data ['new ' ]['redirect_path ' ],
10371037 'rewrite_exclude ' => $ rewrite_exclude );
@@ -1107,7 +1107,7 @@ function update($event_name,$data) {
11071107 unset($ tmp_redirect_path );
11081108 unset($ tmp_redirect_path_parts );
11091109 }
1110- $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' .$ alias ['domain ' ],
1110+ $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' .$ this -> _rewrite_quote ( $ alias ['domain ' ]) ,
11111111 'rewrite_type ' => ($ alias ['redirect_type ' ] == 'no ' )?'' :$ alias ['redirect_type ' ],
11121112 'rewrite_target ' => $ alias ['redirect_path ' ],
11131113 'rewrite_exclude ' => $ rewrite_exclude );
@@ -1128,7 +1128,7 @@ function update($event_name,$data) {
11281128 unset($ tmp_redirect_path );
11291129 unset($ tmp_redirect_path_parts );
11301130 }
1131- $ rewrite_rules [] = array ( 'rewrite_domain ' => '^www. ' .$ alias ['domain ' ],
1131+ $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' . $ this -> _rewrite_quote ( ' www. ' .$ alias ['domain ' ]) ,
11321132 'rewrite_type ' => ($ alias ['redirect_type ' ] == 'no ' )?'' :$ alias ['redirect_type ' ],
11331133 'rewrite_target ' => $ alias ['redirect_path ' ],
11341134 'rewrite_exclude ' => $ rewrite_exclude );
@@ -1150,7 +1150,7 @@ function update($event_name,$data) {
11501150 unset($ tmp_redirect_path );
11511151 unset($ tmp_redirect_path_parts );
11521152 }
1153- $ rewrite_rules [] = array ( 'rewrite_domain ' => $ alias ['domain ' ],
1153+ $ rewrite_rules [] = array ( 'rewrite_domain ' => ' (^|\.) ' . $ this -> _rewrite_quote ( $ alias ['domain ' ]) ,
11541154 'rewrite_type ' => ($ alias ['redirect_type ' ] == 'no ' )?'' :$ alias ['redirect_type ' ],
11551155 'rewrite_target ' => $ alias ['redirect_path ' ],
11561156 'rewrite_exclude ' => $ rewrite_exclude );
@@ -1172,7 +1172,9 @@ function update($event_name,$data) {
11721172 unset($ tmp_redirect_path );
11731173 unset($ tmp_redirect_path_parts );
11741174 }
1175- $ rewrite_rules [] = array ( 'rewrite_domain ' => '^ ' .$ alias ['domain ' ],
1175+ if (substr ($ alias ['domain ' ], 0 , 2 ) === '*. ' ) $ domain_rule = '(^|\.) ' .$ this ->_rewrite_quote ($ alias ['domain ' ]);
1176+ else $ domain_rule = '^ ' .$ this ->_rewrite_quote ($ alias ['domain ' ]);
1177+ $ rewrite_rules [] = array ( 'rewrite_domain ' => $ domain_rule ,
11761178 'rewrite_type ' => ($ alias ['redirect_type ' ] == 'no ' )?'' :$ alias ['redirect_type ' ],
11771179 'rewrite_target ' => $ alias ['redirect_path ' ],
11781180 'rewrite_exclude ' => $ rewrite_exclude );
@@ -2163,7 +2165,10 @@ public function create_relative_link($f, $t) {
21632165
21642166 return symlink ($ cfrom , $ to );
21652167 }
2166-
2168+
2169+ private function _rewrite_quote ($ string ) {
2170+ return str_replace (array ('. ' , '* ' , '? ' , '+ ' ), array ('\\. ' , '\\* ' , '\\? ' , '\\+ ' ), $ string );
2171+ }
21672172
21682173} // end class
21692174
0 commit comments