サポート » 使い方全般 » モバイルをサブドメインへ転送し同一内容を表示したい

  • 解決済 cappuccino

    (@kei0330)


    WordPressを「http://ドメイン/wp/」にインストールし、
    サイトのアドレスを変更して「http://ドメイン/news/」で表示させています。

    モバイルでのアクセスはサブドメインの
    「http://m.ドメイン/news/」に転送するようにしたいのですが、
    「http://ドメイン/news/」にすでにhtaccessがあるので、
    どのように併記すれば良いのか分かりません。

    転送用のhtaccess

    RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOCKET|UP\.Browser|J-PHONE|Vodafone|SoftBank)
    RewriteRule ^(.*)$ http://m.ドメイン/$1 [R]

    既存のhtaccess

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

    さらに転送した先の「http://m.ドメイン/news/」では、
    「http://ドメイン/news/」と同じ内容を表示させたいのですが、
    どのような方法がありますでしょうか。

    インストールディレクトリ
    /httpdocs/wp/

    サイトディレクトリ
    /httpdocs/news/

    サブドメインのディレクトリ
    /subdomains/m/httpdocs/news/

    よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは

    ご質問の趣旨とは少し違いますが、
    アクセスしてくるブラウザによって使用するテーマを変更するプラグインもあるようなので、
    http://wordpress.org/extend/plugins/user-agent-theme-switcher/

    そういうものを使うのが簡単だと思います。

    http://www.example.com/
    http://m.example.com/

    一つのワードプレスから、複数のドメインで同じ表示をするのは、難しいと思います。

    ワードプレスから、サブドメインなどでの、モバイル用のコンテンツの表示に関しては、

    http://ja.forums.wordpress.org/topic/2330?replies=6

    でJSON API プラグインと jQueryMobileを使った例が見つけられます

    サブドメインで実現したいのであれば、JSONに限らず、RSSや、XML-RPC ATOMなどを使ったAPIを使う例もあるかもしれませんので、そのあたりを調べてみるといいと思います

    ご返信ありがとうございます。
    ガチャモバ対応ですので、XMLを取得してPHPで出力する方法も検討させて頂きます。

    できればWordPressだけでどうにかしたいろことなのですが、
    サブドメイン側にもWordPressをインストールし、
    同一のデータベースから読み込めば表示できると思ったのですが、
    wp-config.phpに以下の記述をしても「ページが見つかりません」と
    エラーになってしまいました。

    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
    //define('WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME']);
    
    define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
    //define('WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);

    HTTP_HOST、SERVER_NAME、どちらでもエラーでした。
    他に変更が必要な箇所などあるのでしょうか。

    htaccessの併記部分についてもよろしくお願いします。

    cappuccinoさん

    他に変更が必要な箇所などあるのでしょうか。

    私は使ったことがありませんが、
    define('RELOCATE',true);
    も、調べてみてください
    http://codex.wordpress.org/Changing_The_Site_URL#Relocate_method

    SITEURL やHOME で定義する値は、「WordPress のコアファイルが存在する URL」となっていますけど、その値でいいのですか?

    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpressp');

    ガチャモバ対応ですので、XMLを取得してPHPで出力する方法も検討させて頂きます。

    いまのワードプレスで確認したわけではありませんがFEEDはキャッシュされるので、遅延生じると思いますけど、そのあたりは、考慮済みですか?

    nobitaさん、ありがとうございます。

    SITEURL やHOME で定義する値は、「WordPress のコアファイルが存在する URL」となっていますけど、その値でいいのですか?

    ご指摘通り、パスが抜けていました、、。
    パスを追記したところサブドメイン側でも表示されました。

    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/wp');
    define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/news');

    define('RELOCATE',true);
    こちらはなくても表示されました。

    いまのワードプレスで確認したわけではありませんがFEEDはキャッシュされるので、遅延生じると思いますけど、そのあたりは、考慮済みですか?

    そのあたりは無知でした。
    試しに投稿してすぐにフィードを確認してみたところ、
    反映されていましたので問題なさそうでした。

    htaccessの件は自己解決しました。
    単純にモバイルのリダイレクト部分を先頭に記述し、
    [R]を[R, L]とすることで、次のリダイレクトを実行しないようにしています。

    もっとスマートな記述があるかもしれませんが、
    ソースを載せておきます。

    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOCKET|UP\.Browser|J-PHONE|Vodafone|SoftBank)
    RewriteRule ^(.*)$ http://m.example.com/news/$1 [R,L]
    
    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /wp/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wp/index.php [L]
    # END WordPress

    とりあえず希望の動作にはなりましたので、解決済みとさせていただきます。
    ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「モバイルをサブドメインへ転送し同一内容を表示したい」には新たに返信することはできません。