wp_safe_redirect()

wp_safe_redirect( string $location, int $status = 302, …

wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = ‘WordPress’ )

使用wp_redirect()执行安全(本地)重定向。
Performs a safe (local) redirect, using wp_redirect().

目录锚点:#说明#参数#源码#笔记


说明(Description)

检查$location是否使用允许的主机(如果它有绝对路径)。因此,插件可以设置或删除列表中允许的主机。如果不允许主机,则重定向默认为siteurl上的wp admin。这可以防止恶意重定向重定向到另一个主机,但只在少数地方使用。注意:wp_safe_redirect()不会自动退出,并且应该几乎总是在调用exit之后;:wp_safe_redirect($url);exit;退出也可以通过使用wp_safe_redirect()作为条件与“wp_redirect”和“wp_redirect_location”筛选器一起使用作为条件的退出操作:if(wp_safe_redirect($url)){退出;}


参数(Parameters)

参数 类型 说明
$location (string) 要重定向到的路径或URL。
$status (int) 要使用的HTTP响应状态代码。默认值为“302”(暂时移动)。
$x_redirect_by (string) 执行重定向的应用程序。

源码(Source)

/**
 * Performs a safe (local) redirect, using wp_redirect().
 *
 * Checks whether the $location is using an allowed host, if it has an absolute
 * path. A plugin can therefore set or remove allowed host(s) to or from the
 * list.
 *
 * If the host is not allowed, then the redirect defaults to wp-admin on the siteurl
 * instead. This prevents malicious redirects which redirect to another host,
 * but only used in a few places.
 *
 * @since 2.3.0
 */
function wp_safe_redirect($location, $status = 302) {

	// Need to look at the URL the way it will end up in wp_redirect()
	$location = wp_sanitize_redirect($location);

	/**
	 * Filter the redirect fallback URL for when the provided redirect is not safe (local).
	 *
	 * @since 4.3.0
	 *
	 * @param string $fallback_url The fallback URL to use by default.
	 * @param int    $status       The redirect status.
	 */
	$location = wp_validate_redirect( $location, apply_filters( 'wp_safe_redirect_fallback', admin_url(), $status ) );

	wp_redirect($location, $status);
}
endif;

if ( !function_exists('wp_validate_redirect') ) :
更新版本 源码位置 使用 被使用
5.1.0 wp-includes/pluggable.php 7 12

笔记(Notes)

与wp_redirect一样,除非对其进行修补以在将来以本机方式执行此操作,否则请确保包含nocache_headers();在wp_safe_重定向之前,如果您想确保访问者的浏览器不会缓存重定向页面结果(甚至在设置为使用302重定向时也可能发生),这可能会导致重定向发生的时间超过预期。

类别:WordPress 函数手册

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册