为什么这个重定向规则不起作用?

时间:2014-11-28 12:22:15

标签: php ajax wordpress .htaccess redirect

我正在尝试重定向此网址

example.com/wp-admin/admin-ajax.php?action=flare_get_counts&url=http%3A%2F%2Fexample.com%2Funix-tutorial-402-356-%2F&post_id=34&_wpnonce=8c7fc14726

example.com/unix-tutorial/

为此我写了这个重定向规则

RedirectMatch 301 ^/wp-admin/admin-ajax.php?action=flare_get_counts$ http://example.com/$3

但这条规则不起作用。重定向此URL的正确方法是什么?

4 个答案:

答案 0 :(得分:0)

确保屏蔽您不想被解释为正则表达式的字符:

^/wp-admin/admin-ajax\.php\?action=flare_get_counts$

答案 1 :(得分:0)

您无法使用RedirectMatch来匹配QUERY_STRING。请改用mod_rewrite规则。

您可以在/wp-admin/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /wp-admin/

RewriteCond %{QUERY_STRING} ^action=[^&]+&url= [NC]
RewriteRule ^admin-ajax\.php$ /unix-tutorial/? [L,NC,R=302]

确保RewriteBase行以下这是第一条规则

答案 2 :(得分:0)

这是重定向AJAX请求的PHP / WP方式:

add_action( 'wp_ajax_flare_get_counts',        'so27188591_flare_redirect' );
add_action( 'wp_ajax_nopriv_flare_get_counts', 'so27188591_flare_redirect' );
function so27188591_flare_redirect()
{
    if( isset( $_GET['action'] ) && $_GET['action'] == 'flare_get_counts' )
        wp_safe_redirect( home_url( '/unix-tutorial/' ) );

    exit;
}

答案 3 :(得分:0)

试试这个:

Redirect 301 /wp-admin/admin-ajax.php?action=flare_get_counts$ http://example.com/$3

希望这会对你有帮助。