[WordPress] リダイレクトのルールが動作しません。

スポンサーリンク

Question

この URL にリダイレクトしようとしている

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 にリダイレクトする正しい方法は何ですか?

答え

文字をマスクする正規表現として解釈されることを確認しましょう:

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

答え

QUERY_STRING を一致するように

RedirectMatch

を使用することはできません。

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]

答え

これは、PHP/WP AJAX をリダイレクトする方法を要求します。

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;
}

http://stackoverflow.com/questions/27188591/why-this-redirect-rule-doesnt-work

スポンサーリンク

Leave a Reply