/** METHOD: ResetHTACCESS * Resetst the .htaccess file */ public static function Setup() { if (!isset($_POST['url_new'])) { return; } DUPX_Log::Info("\nWEB SERVER CONFIGURATION FILE BASIC SETUP:"); $currdata = parse_url($_POST['url_old']); $newdata = parse_url($_POST['url_new']); $currpath = DupUtil::add_slash(isset($currdata['path']) ? $currdata['path'] : ""); $newpath = DupUtil::add_slash(isset($newdata['path']) ? $newdata['path'] : ""); $tmp_htaccess = <<<HTACCESS # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase {$newpath} RewriteRule ^index\\.php\$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . {$newpath}index.php [L] </IfModule> # END WordPress HTACCESS; file_put_contents('.htaccess', $tmp_htaccess); @chmod('.htaccess', 0644); DUPX_Log::Info("created basic .htaccess file. If using IIS web.config this process will need to be done manually."); }
private static function isPathNew() { $currdata = parse_url($_POST['url_old']); $newdata = parse_url($_POST['url_new']); $currpath = DupUtil::add_slash(isset($currdata['path']) ? $currdata['path'] : ""); $newpath = DupUtil::add_slash(isset($newdata['path']) ? $newdata['path'] : ""); return $currpath != $newpath; }
$patterns = array("/'WP_HOME',\\s*'.*?'/", "/'WP_SITEURL',\\s*'.*?'/"); $replace = array("'WP_HOME', " . '\'' . $_POST['url_new'] . '\'', "'WP_SITEURL', " . '\'' . $_POST['url_new'] . '\''); $config_file = @file_get_contents('wp-config.php', true); $config_file = preg_replace($patterns, $replace, $config_file); file_put_contents('wp-config.php', $config_file); //Create Snapshots directory if (!file_exists(DUPLICATOR_SSDIR_NAME)) { mkdir(DUPLICATOR_SSDIR_NAME, 0755); } $fp = fopen(DUPLICATOR_SSDIR_NAME . '/index.php', 'w'); fclose($fp); //WEB CONFIG FILE $currdata = parse_url($_POST['url_old']); $newdata = parse_url($_POST['url_new']); $currpath = DupUtil::add_slash(isset($currdata['path']) ? $currdata['path'] : ""); $newpath = DupUtil::add_slash(isset($newdata['path']) ? $newdata['path'] : ""); if ($currpath != $newpath) { DupUtil::log("HTACCESS CHANGES:"); @copy('.htaccess', '.htaccess.orig'); @copy('web.config', 'web.config.orig'); @unlink('.htaccess'); @unlink('web.config'); DupUtil::log("created backup of original .htaccess to htaccess.orig and web.config to web.config.orig"); $tmp_htaccess = <<<HTACCESS # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase {$newpath} RewriteRule ^index\\.php\$ - [L] RewriteCond %{REQUEST_FILENAME} !-f
<?php $dbh = @mysqli_connect($_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass'], $_POST['dbname']); $all_tables = DupUtil::get_database_tables($dbh); $active_plugins = DupUtil::get_active_plugins($dbh); $old_path = $GLOBALS['FW_WPROOT']; $new_path = DupUtil::set_safe_path($GLOBALS['CURRENT_ROOT_PATH']); $new_path = strrpos($old_path, '/') + 1 == strlen($old_path) ? DupUtil::add_slash($new_path) : $new_path; ?> <script type="text/javascript"> /** ********************************************** * METHOD: * Timeout (10000000 = 166 minutes) */ Duplicator.runUpdate = function() { //Validation var wp_username = $.trim($("#wp_username").val()).length || 0; var wp_password = $.trim($("#wp_password").val()).length || 0; if ( $.trim($("#url_new").val()) == "" ) {alert("The 'New URL' field is required!"); return false;} if ( $.trim($("#siteurl").val()) == "" ) {alert("The 'Site URL' field is required!"); return false;} if (wp_username >= 1 && wp_username < 4) {alert("The New Admin Account 'Username' must be four or more characters"); return false;} if (wp_username >= 4 && wp_password < 6) {alert("The New Admin Account 'Password' must be six or more characters"); return false;} $.ajax({ type: "POST", timeout: 10000000, dataType: "json", url: window.location.href, data: $('#dup-step2-input-form').serialize(),