Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/redirection/actions/ |
<?php require_once dirname( __FILE__ ) . '/url.php'; /** * A 'pass through' action. Matches a rewrite rather than a redirect, and uses PHP to fetch data from a remote URL. */ class Pass_Action extends Url_Action { /** * Process an external passthrough - a URL that lives external to this server. * * @param string $url Target URL. * @return void */ public function process_external( $url ) { // This is entirely at the user's risk. The $url is set by the user // phpcs:ignore echo wp_remote_fopen( $url ); } /** * Process an internal passthrough - a URL that lives on the same server. Here we change the request URI and continue without making a remote request. * * @param string $target Target URL. * @return void */ public function process_internal( $target ) { // Another URL on the server $pos = strpos( $target, '?' ); $_SERVER['REQUEST_URI'] = $target; $_SERVER['PATH_INFO'] = $target; if ( $pos ) { $_SERVER['QUERY_STRING'] = substr( $target, $pos + 1 ); $_SERVER['PATH_INFO'] = $target; // Take the query params in the target and make them the params for this request parse_str( $_SERVER['QUERY_STRING'], $_GET ); } } /** * Is a URL external? * * @param string $target URL to test. * @return boolean */ public function is_external( $target ) { return substr( $target, 0, 7 ) === 'http://' || substr( $target, 0, 8 ) === 'https://'; } /** * Pass the data from the target * * @return void */ public function run() { // External target $target = $this->get_target(); if ( $target === null ) { return; } if ( $this->is_external( $target ) ) { // Pass on to an external request, echo the results, and then stop $this->process_external( $target ); exit(); } // Change the request and carry on $this->process_internal( $target ); } public function name() { return __( 'Pass-through', 'redirection' ); } }