Fix bug edits

main
Anthony 2025-08-09 00:40:02 +08:00
parent f303897838
commit 0ad8e72652
1 changed files with 4 additions and 4 deletions

View File

@ -230,12 +230,12 @@ if [[ -f "$CONFIG_FILE" && -w "$CONFIG_FILE" ]]; then
[[ -z "$HOST_ONLY" ]] && HOST_ONLY="$TARGET_URL"
# shellcheck disable=SC2016 # we want literal quotes inside sed replacement
# Replace existing definitions (handle both single and double quotes)
sed -i -E "s|define\(\s*['\"]WP_HOME['\"]\s*,\s*['\"][^'\"]*['\"]\s*\);|define( 'WP_HOME', '${TARGET_URL}' );|; s|define\(\s*['\"]WP_SITEURL['\"]\s*,\s*['\"][^'\"]*['\"]\s*\);|define( 'WP_SITEURL', '${TARGET_URL}' );|; s|\$_SERVER\[(\"|')HTTP_HOST\1\]\s*=\s*(\"|')[^"']*\2;|\$_SERVER['HTTP_HOST'] = '${HOST_ONLY}';|" "$CONFIG_FILE" || warning "Failed to update wp-config.php"
sed -i -E "s|define\([[:space:]]*['\"]WP_HOME['\"][[:space:]]*,[[:space:]]*['\"][^'\"]*['\"][[:space:]]*\);|define( 'WP_HOME', '${TARGET_URL}' );|; s|define\([[:space:]]*['\"]WP_SITEURL['\"][[:space:]]*,[[:space:]]*['\"][^'\"]*['\"][[:space:]]*\);|define( 'WP_SITEURL', '${TARGET_URL}' );|; s|\$_SERVER\[(\"|')HTTP_HOST\1\][[:space:]]*=[[:space:]]*(\"|')[^"']*\2;|\$_SERVER['HTTP_HOST'] = '${HOST_ONLY}';|" "$CONFIG_FILE" || warning "Failed to update wp-config.php"
# Determine which entries are missing to avoid duplicates
needs_home=1; grep -Eq "define\(\s*['\"]WP_HOME['\"]" "$CONFIG_FILE" && needs_home=0 || true
needs_siteurl=1; grep -Eq "define\(\s*['\"]WP_SITEURL['\"]" "$CONFIG_FILE" && needs_siteurl=0 || true
needs_http_host=1; grep -Eq "\$_SERVER\[(\"|')HTTP_HOST\1\]\s*=" "$CONFIG_FILE" && needs_http_host=0 || true
needs_home=1; grep -Eq "define\([[:space:]]*['\"]WP_HOME['\"]" "$CONFIG_FILE" && needs_home=0 || true
needs_siteurl=1; grep -Eq "define\([[:space:]]*['\"]WP_SITEURL['\"]" "$CONFIG_FILE" && needs_siteurl=0 || true
needs_http_host=1; grep -Eq "\$_SERVER\[(\"|')HTTP_HOST\1\][[:space:]]*=" "$CONFIG_FILE" && needs_http_host=0 || true
if [[ $needs_home -eq 1 || $needs_siteurl -eq 1 || $needs_http_host -eq 1 ]]; then
info "Inserting missing wp-config.php directives (WP_HOME/WP_SITEURL/HTTP_HOST) …"