サポート » 使い方全般 » htaccessの記述が反映されない。解決方法がわからない

  • 解決済 merusi

    (@merusi)


    FC2ブログからワードプレスへ移転したのですが、元に戻したいと思います。
    トップページ以外は新しいブログのurlに変わっているものがあるので、
    新しいブログに来ているアクセスは旧ブログにリダイレクトで飛ばしたいと思います。

    そこでpublic_htmlフォルダに入っているhtaccessに301リダイレクトの
    記述をしたのですが、全く何も変わりません。
    使っているのはエックスサーバーです。

    どう記述したら301リダイレクト出来るでしょうか。

    現在は下記のように書いてあります。
    ***の部分はサーバーに関する記述があるので、***で表してあります。

    現在のアドレスがhttp://example.jp/?p=(数字)で
    移転先のページがhttp://example.blog91.fc2.com/blog-entry-(数字).htmlです。

    数字部分はどちらのブログでも合わせてあります。

    suPHP_ConfigPath /home/***/exeample.jp/xserver_php/
    AddHandler x-httpd-php5.3 .php .phps
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^/\?p\=([0-9]+)$ http://example.blog91.fc2.com/blog-entry-($1).html[R=301,L]
    </IfModule>

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    # END WordPress
    AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript text/javascript

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • WordPress から他へ移ろうとしているので、
    ここでは良心的な回答は得られないでしょう。

    わかっている事は、 RewriteRule に記載している状態では
    ?p=(数字) が URL に入っている時にしか効いていないという事です。

    たまたま自分のブログで昨日記事にしていたので、
    手前味噌になりますが、ここをヒントとして貼り付けておきます。

    Web サイト引っ越し・閉鎖時に他のページへ飛ばすベストな方法。

    rewrite は使っていませんが……

    こんにちは、
    お手軽な方法ですが、

    coreのindex.phpを以下のように変更します。

    <?php
    /**
     * Front to the WordPress application. This file doesn't do anything, but loads
     * wp-blog-header.php which does and tells WordPress to load the theme.
     *
     * @package WordPress
     */
    
    /**
     * Tells WordPress to load the WordPress theme and output it.
     *
     * @var bool
     */
    define('WP_USE_THEMES', false);
    
    /** Loads the WordPress Environment and Template */
    require('./wp-blog-header.php');
    $query = get_query_var( 'p' ); 
    
    if( $query == 0 ){
    wp_redirect('http://example.blog91.fc2.com/' ,301);
    }else{
    wp_redirect( "http://example.blog91.fc2.com/blog-entry-{$query}.html",301);
    }
    exit;

    これだと、wp-adminには普通に入れると思いますので、引越しのいろいろで、参照する事も出来ます。

    WP_USE_THEMES を false にしてみてくださいね

    お二人ともご回答ありがとうございます。

    Keiichi SHIGA様

    >WordPress から他へ移ろうとしているので、
    >ここでは良心的な回答は得られないでしょう。

    ご回答ありがとうございます。
    そうですよね、本当は私もせっかくワードプレスに移転したので、
    ワードプレスで続けたいのですがいつまでたってもトップページが
    新ブログに移行せず、新ブログで書いた記事も検索順位が一向に上がらないので
    仕方なく戻ろうと考えたんですが、それも分からず戸惑っていました。
    FC2ブログはFC2ブログで続けて、ワードプレスでは別のブログを
    新たに立ち上げるつもりです。

    nobita 様へ

    nobita様の方法が分かりやすかったので、実践させていただいたら、
    出来ました!!
    本当にありがとうございます。

    ただトップページ以外だけを旧ブログにリダイレクトさせたいのですが、
    その場合は、どうすればいいでしょうか。

    タイトルで検索すると旧ブログが出てくるので、トップページはリダイレクト
    する必要がないので、個別記事だけをリダイレクトしたいです。

    その場合、if( $query == 0 )をどう変えたらいいでしょうか。

    wp_redirect('http://example.blog91.fc2.com/' ,301);

    を削除して、その代わりに、WordPressのトップページのhtmlソースをコピーして貼り付けておけばいいと思います。

    example

    if( $query == 0 ){
    ?>
    ここに、ワードプレスのトップページのhtmlソースをコピーしたものを貼り付けておけばいいと思います。
    <?php
    }else{
    wp_redirect( "http://example.blog91.fc2.com/blog-entry-{$query}.html",301);
    }
    exit;

    nobita様

    再びご回答ありがとうございます。
    先ほど上手く行きましたとお返事したのですが、個別記事にアクセスすると
    全て旧ブログのトップページへ転送されてしまっていました。

    ワードプレスで設定しているパーマリンクがデフォルトの%postname%だからでしょうか。

    FC2ブログの方と対応させたのは
    http://example.jp/?p=記事番号の記事番号の部分ですが、それをワードプレスが自動的に
    <link href=”http://example.jp/独自のスラッグ&#8221; rel=”canonical”>に変更しています。

    【例】—————————————

    http://example.jp/?p=500にアクセスしたとする
    自動でhttp://example.jp/hogehogeに転送される。

    グーグルにインデックスされているのは
    http://example.jp/hogehogeなので、アクセスしてくる人は
    http://example.jp/?p=500ではなくhttp://example.jp/hogehogeに
    アクセスしてくる。

    ——————————————

    この場合はhttp://example.jp/hogehogeにアクセスしてきた人を
    http://example.jp/?p=500に転送させ、これを
    http://example.blog91.fc2.com/blog-entry-記事番号.htmlに転送させなくては、
    ダメでしょうか。

    現在のアドレスがhttp://example.jp/?p=(数字)で

    ワードプレスで設定しているパーマリンクがデフォルトの%postname%だからでしょうか。

    パーマリンクを設定すると、動かないと思います

    $query = get_query_var( 'p' );
    を、以下のように、リクエストURLからポストIDを取得できれば、(あくまで、考え方だけ)
    $url 	= $_SERVER["REQUEST_URI"] ;
    $query 	= url_to_postid($url) ;

    出来ない事もないかも知れませんけど、テストで出来ないので、なんともいえないですが、試してみてはいかがでしょうか?

    はてなで質問して上手に解決できました。
    皆様ありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「htaccessの記述が反映されない。解決方法がわからない」には新たに返信することはできません。