バージョン選択

フォーラム

メニュー

オンライン状況

50 人のユーザが現在オンラインです。 (39 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 50
もっと...

サイト内検索

質問 > その他 > Googleサイトマップ登録に関して

その他

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
seasoft
投稿日時: 2009/5/7 13:29
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: Googleサイトマップ登録に関して
TELNET クライアントなどで、リクエストすると正確に状況を把握できると思います。

若しくは、Firefox でしたらプラグインなどで、リクエスト・レスポンスを確認しても良いと思います。(特に、cookie 周りかな)


> そうなると、Status 302になるのはサーバで何か悪さしているんでしょうか・・・?

モバイルのソースは、査読しきれていない部分も多いので確かではありませんが、セッション関連の cookie をリクエスト時に送出していない場合、「Status 302」で正常な気がします。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

loopus
投稿日時: 2009/5/7 13:11
対応状況: −−−
半人前
登録日: 2007/11/27
居住地: 静岡県浜松市
投稿: 12
Re: Googleサイトマップ登録に関して
引用:

cookie を使える環境で試験されていませんか? > loopus 様
若干気になっていました。

index.php の有無で、そのような動作の違い発生するとしたら、その方がむしろ異常があるかも。


言われてみれば確かに・・・
試してみたのがFirefox + FireMobileSimuratorだったのですが、今試したら両方とも Status 200になりました。

念のため web-snifferで見ても同じでした。

サーバの設定何も変えていないはずなんですが、何で違うんだろう・・・


そうなると、Status 302になるのはサーバで何か悪さしているんでしょうか・・・?
seasoft
投稿日時: 2009/5/1 13:09
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: Googleサイトマップ登録に関して
引用:

> loopus 様
http://ドメイン名/mobile/index.php
としても、Status 302になりました。

やはりPHPの設定のどこかがおかしいのでしょうか・・
--------------------------------------------------------------------------------
View HTTP Request and Response Header
http://web-sniffer.net/

上記URLで確認:「http://ドメイン名/mobile/index.php」
HTTP Status Code: HTTP/1.1 302 Found
--------------------------------------------------------------------------------

cookie を使える環境で試験されていませんか? > loopus 様
若干気になっていました。

index.php の有無で、そのような動作の違い発生するとしたら、その方がむしろ異常があるかも。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

Linux-user
投稿日時: 2009/5/1 13:05
対応状況: 確認中
常連
登録日: 2008/1/8
居住地:
投稿: 62
Re: Googleサイトマップ登録に関して
ご返信ありがとうございます。

> Oba 様
Oba 様の方法で、mobile版のSitemapを作成し、
併せて、モバイルに不要な出力オプションを削除し、<mobile:mobile />を追加し、
Google モバイルサイトマップに準拠したフォーマットに致しました。

現在、Googleウェブマスターツール上に登録済で、経過観察中なのですが、
レポート形式・フォーマットは「ケータイ」として認識されているようです。

まだエラー警告を受けるには時間が掛かりそうですが、
上記設定のみでは、302リダイレクトが解決していませんので、恐らくエラー警告を受ける気がします(・・多分)。


> loopus 様
http://ドメイン名/mobile/index.php
としても、Status 302になりました。

やはりPHPの設定のどこかがおかしいのでしょうか・・
--------------------------------------------------------------------------------
View HTTP Request and Response Header
http://web-sniffer.net/

上記URLで確認:「http://ドメイン名/mobile/index.php」
HTTP Status Code: HTTP/1.1 302 Found
--------------------------------------------------------------------------------


> tao_s様
header関数に関してですが、PHPに関しては知識が浅い為、
いろいろと検索してみたのですが、EC CUBEの場合、どの箇所に入れて良いのかが分からず、

「 header("Location: 」が含まれるデータを検索・確認してみたのですが、
--------------------------------------------------------------------------------
/data/class/pages/LC_Page.php
/data/class/pages/admin/mail/LC_Page_Admin_Mail_Sendmail.php
/data/class/util/SC_Utils.php
/html/require.php
/html/shopping/card.php
/html/shopping/convenience.php
/html/shopping/load_payment_module.php
/html/shopping/loan.php
/html/shopping/loan_cancel.php
--------------------------------------------------------------------------------

モバイルに関する記述が見当たらず、この部分で苦戦しております。
※もしかしたら見当違いな部分を探していたのかも知れません。

HTMLファイルタグやPHPスクリプトによる出力よりも前に記述する必要があるようで、
「 site_frame.tpl 」 の<html>の直前に入れてみたのですが、これも違うようでした。

実際には、どのファイルのどの箇所に入れるのが適切なのでしょうか。

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header("Location:http://ドメイン名/mobile/" );
?>
tao_s
投稿日時: 2009/4/30 12:35
対応状況: −−−
仙人
登録日: 2008/8/20
居住地: 東京
投稿: 799
Re: Googleサイトマップ登録に関して
モバイルサイトマップでは私も以前悩みました。
http://www.syndicate-st.com/shop/では、PC版とモバイル版を別々に出力しています。

http://www.syndicate-st.com/shop/mobile_sitemap.phpがモバイル版にあたります。

302リダイレクトに関してですが、
以前ここにも書きましたが、PHPで
header("Location:http://xxx.yyy.zz");
とやると標準で302を返しますので、その前に
header( "HTTP/1.1 301 Moved Permanently" ); 
とすればgoogleサイトマップのエラーは解消されると思います。
loopus
投稿日時: 2009/4/30 11:29
対応状況: −−−
半人前
登録日: 2007/11/27
居住地: 静岡県浜松市
投稿: 12
Re: Googleサイトマップ登録に関して
私が持っている環境で試してみました。

確かに
http://ドメイン名/mobile/
でアクセスするとStatus 302を返しますが、

http://ドメイン名/mobile/index.php
とすると、Status 200になります。

個別商品ページ
http://ドメイン名/mobile/products/detail.php?product_id=xxxx
なども直接開くと200になります。


モバイル版は使ってないのでソースとかよく分かっていませんが、個別ページで302ということは、PHPの設定も疑った方が良いのかもしれませんね。
Oba
投稿日時: 2009/4/27 18:43
対応状況: −−−
一人前
登録日: 2007/8/31
居住地: 静岡
投稿: 111
Re: Googleサイトマップ登録に関して
Linux_user 様
返信ありがとうございます。

/data/class/pages/LC_Page_Sitemap.php は同じ事を行いました。

私のした事は改編などと言いましても、コピーに過ぎないので恐縮ですが、以下へ載せておきます。

LC_Page_Sitemap.phpをコピーしてLC_Page_Sitemap_Mb.phpとし、
54行目を
class LC_Page_Sitemap_Mb extends LC_Page {
と、
80行目を
$this->staticURL = array(MOBILE_SITE_URL, SITE_URL . "rss/index.php");
とします。
104行目から
        print("<?xml version='1.0' encoding='UTF-8'?>\n");
        print("<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'
                xmlns:mobile='http://www.google.com/schemas/sitemap-mobile/1.0'>\n");

        // 静的なページを処理
        foreach($this->staticURL as $url) {
            $this->createSitemap($url, '', 'daily', 1.0);
        }

        // 商品一覧ページを処理
        $mobileProducts = $this->getAllProducts(true);
        foreach($mobileProducts as $mobileProduct) {
            $this->createSitemap($mobileProduct['url'], '', 'daily');
        }

        // 商品詳細ページを処理
        $mobileDetails = $this->getAllDetail(true);
        foreach($mobileDetails as $mobileDetail) {
            $this->createSitemap($mobileDetail['url'], 
                                 $this->date2W3CDatetime($mobileDetail['update_date']));
        }

        print("</urlset>\n");
    }

    /**
     * デストラクタ.
     *
     * @return void
     */
    function destroy() {
        parent::destroy();
    }

    /**
     * Sitemap の <url /> を生成する.
     *
     * @param string $loc ページの URL ※必須
     * @param string $lastmod ファイルの最終更新日 YYYY-MM-DD or W3C Datetime 形式
     * @param string $changefreq ページの更新頻度
     * @param double $priority URL の優先度
     * @return Sitemap 形式の <url />
     * @see https://www.google.com/webmasters/tools/docs/ja/protocol.html#xmlTagDefinitions
     * TODO Smarty に移行すべき?
     */
    function createSitemap($loc, $lastmod = "", $changefreq = "",
                           $priority = "") {
        printf("\t<url>\n");
        printf("\t\t<loc>%s</loc>\n", htmlentities($loc, ENT_QUOTES, "UTF-8"));
        if (!empty($lastmod)) {
            printf("\t\t<lastmod>%s</lastmod>\n", $lastmod);
        }
        if (!empty($changefreq)) {
            printf("\t\t<changefreq>%s</changefreq>\n", $changefreq);
        }
        if(!empty($priority)) {
            printf("\t\t<priority>%01.1f</priority>\n", $priority);
        }
   	print("<mobile:mobile/>\n");
        printf("\t</url>\n");
    }


     * TOPページの情報を取得する.
     * すべての編集可能ページの情報を取得する.

    /**
     * すべての商品一覧ページを取得する.
     *
としました。(赤字部分の該当文は消しました。
あと、/data/class_extends/page_extends へ、LC_Page_Sitemap_Ex.phpをコピーし、LC_Page_Sitemap_Mb_Ex.phpとして置きます。
そのファイルの
25行目を
require_once(CLASS_PATH . "pages/LC_Page_Sitemap_Mb.php");

36行目を
class LC_Page_Sitemap_Mb_Ex extends LC_Page_Sitemap_Mb {
とします。
あとは、html/以下へ、sitemap.phpをコピーし、sitemap_mb.phpとして置きます。
そのファイルの
26行目を
require_once(CLASS_EX_PATH . "page_extends/LC_Page_Sitemap_Mb_Ex.php");

としました。

これで、警告を回避できました。
しっかりとした知識が無いので、間違ってるやもしれません。
では。
Linux-user
投稿日時: 2009/4/27 12:00
対応状況: 確認中
常連
登録日: 2008/1/8
居住地:
投稿: 62
Re: Googleサイトマップ登録に関して
Oba 様
ご返信ありがとうございます。

私どもの環境では、依然、Mobileで302リダイレクトに悩まれております。
※現状では、sitemapからMobileをカットして、ひとまずPC版のみに対応させております。

また、PCサイトのみの分離・対応方法ですが、
「/data/class/pages/LC_Page_Sitemap.php」より  ↓↓引用:
// 商品一覧ページを処理
$products = $this->getAllProducts();
foreach($products as $product) {
$this->createSitemap($product['url'], '', 'daily');
}
$mobileProducts = $this->getAllProducts(true);
foreach($mobileProducts as $mobileProduct) {
$this->createSitemap($mobileProduct['url'], '', 'daily');
}


// 商品詳細ページを処理
$details = $this->getAllDetail();
foreach($details as $detail) {
$this->createSitemap($detail['url'],
$this->date2W3CDatetime($detail['update_date']));
}
$mobileDetails = $this->getAllDetail(true);
foreach($mobileDetails as $mobileDetail) {
$this->createSitemap($mobileDetail['url'],
$this->date2W3CDatetime($mobileDetail['update_date']));
}



  〜 省略 〜


/**
* すべての商品一覧ページを取得する.
*
* @param boolean $isMobile モバイルページを取得する場合 true
* @return array 検索エンジンからアクセス可能な商品一覧ページの情報
*/
function getAllProducts($isMobile = false) {
$conn = new SC_DBConn();
$sql = "SELECT category_id FROM dtb_category WHERE del_flg = 0";
$result = $conn->getAll($sql);

$mobile = "";
if ($isMobile) {
$mobile = "mobile/";
}



  〜 省略 〜


/**
* すべての商品詳細ページを取得する.
*
* @param boolean $isMobile モバイルページを取得する場合 true
* @return array 検索エンジンからアクセス可能な商品詳細ページの情報
*/
function getAllDetail($isMobile = false) {
$conn = new SC_DBConn();
$sql = "SELECT product_id, update_date FROM dtb_products WHERE del_flg = 0 AND status = 1";
$result = $conn->getAll($sql);

$mobile = "";
if ($isMobile) {
$mobile = "mobile/";
}
赤文字を削除

上記方法で調整しております。


Oba 様は、 引用:
今は、sitemap.phpを改編して、PCとMobileを分けて登録しています。
警告はもらってませんので、多分(^^;大丈夫だと思います。

と、対応されておりますが、実際にはどのように分離し、302リダイレクトを回避なされたのでしょうか。
※分離しただけでは、Mobileでの302リダイレクトは解決しない気がするのですが・・

ご教授頂けましたら幸いです。
Oba
投稿日時: 2009/4/24 22:43
対応状況: −−−
一人前
登録日: 2007/8/31
居住地: 静岡
投稿: 111
Re: Googleサイトマップ登録に関して
Linux-user 様

私もGoogleから「リダイレクト〜」と、sitemap.phpを指定し、警告を受けてました。
そこで、以前は、新たにsitemap.xmlを作り対応していました。
今は、sitemap.phpを改編して、PCとMobileを分けて登録しています。
警告はもらってませんので、多分(^^;大丈夫だと思います。

Linux-user様は、引用:
ひとまずは、 「/data/class/pages/LC_Page_Sitemap.php」よりmobile箇所を修正し、 PCサイトのみのsitemapが表示できるように変更しました。 ※これは正常に機能しています。
と、対応されてますが、どのように対応されたのか、ご教示ください。


Linux-user
投稿日時: 2009/4/22 14:36
対応状況: 確認中
常連
登録日: 2008/1/8
居住地:
投稿: 62
Re: Googleサイトマップ登録に関して
loopus様

ご回答ありがとうございます。

お知らせ頂きましたページより、ページ表示テストを実行致しますと、
「/mobile」以下のページが全てHTTPリクエストエラーになります。

※「i-mode HTML Simulator II」におきましても Status code は確認できております。
詳細は以下の通りです。  ↓↓引用:
============================================================
URL: http://ドメイン名/mobile/
シミュレートモード : iHTML7.2/Flash Lite 3.1/Adobe Reader LE2.0/Deco-mail4.0/ToruCa2.1
通信ログ出力モード: シンプルモード
------------------------------------------------------------
URL: http://ドメイン名/mobile/
Status code: 302
Content-Type: text/html; charset=UTF-8
Content-Length: 0
--- --- ---
URL: http://ドメイン名/mobile/index.php?PHPSESSID=・・・
Status code: 200
Content-Type: text/html; charset=Shift_JIS
Content-Length: -
--- --- ---



それは、私どものページに限った事ではなく、
EC CUBEで作成された他社様のページでも同様の結果となりました。
--------------------------------------------------------------------------------
「http://ドメイン名/mobile/」
指定されたURL(表示ページ)が正しくありません
--------------------------------------------------------------------------------

EC-CUBE-EC-CUBEを使用したサイト
http://www.ec-cube.net/product/cases/backnumber.php

上記より無作為にモバイルサイトを確認し、ページ表示テストを実行致しますと、
同様に、「/mobile」以下のページが全てHTTPリクエストエラー(Status code: 302)になります。

PHPSESSIDが自動付与されますので、
その処理で必然的に「Status code: 302」を返しているようです。

ですので、そもそもモバイル版sitemapは対応できていない(対応できない)ような気がするのですが、
その辺りはどうなのでしょうか。


--------------------------------------------------------------------------------
ひとまずは、
「/data/class/pages/LC_Page_Sitemap.php」よりmobile箇所を修正し、
PCサイトのみのsitemapが表示できるように変更しました。
※これは正常に機能しています。
--------------------------------------------------------------------------------
(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,711名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.