get_target() ); $current = self::current_url(); if ( $target && $target !== $current ) { wp_safe_redirect( $target, $match->get_status(), 'Airygen SEO Redirects' ); exit; } } self::log_404_if_needed(); } /** * Resolve target URL, supporting relative paths. * * @param string $target Target value. * * @return string */ private static function resolve_target_url( string $target ): string { $target = trim( $target ); if ( '' === $target ) { return ''; } if ( 0 === strpos( $target, 'http://' ) || 0 === strpos( $target, 'https://' ) ) { return $target; } return home_url( $target ); } /** * Get current URL for loop prevention. * * @return string */ private static function current_url(): string { $scheme = is_ssl() ? 'https://' : 'http://'; $host = isset( $_SERVER['HTTP_HOST'] ) ? sanitize_text_field( wp_unslash( (string) $_SERVER['HTTP_HOST'] ) ) : (string) wp_parse_url( home_url(), PHP_URL_HOST ); $uri = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( (string) $_SERVER['REQUEST_URI'] ) ) : '/'; return $scheme . $host . $uri; } /** * Log 404s when applicable. */ private static function log_404_if_needed(): void { if ( is_404() ) { $path = isset( $_SERVER['REQUEST_URI'] ) ? sanitize_text_field( wp_unslash( (string) $_SERVER['REQUEST_URI'] ) ) : ''; Logger::log_404( $path ); } } }