sitemap.xmlファイル自動生成のPHP改造

このQ&Aのポイント
  • PHPを改造してsitemap.xmlファイルの自動生成方法を変更する方法について教えてください
  • 現在、サイト制作において1つのディレクトリに1つのindex.htmlという構造を採用しており、自サーバにアップしたPHPプログラムでsitemap.xmlを自動生成しています
  • しかし、index.htmlの表記を省略し、ディレクトリ名のみを表示するよう改造したいです。改造方法を教えてください
回答を見る
  • ベストアンサー

sitemap.xmlファイル自動生成のPHP改造

htmlにてサイト制作していて 1つのディレクトリに1つのindex.htmlというサイト構造を採用しています。 http://fstyle.adaga.org/archives/2005/12/google_php.html 上記URLのsitemap.xmlを自動生成してくれるPHPプログラムを 自サーバにアップして利用しています。 オンライン上でサイトマップを自動生成してくれる所も知っていますが 上記のプログラムが使いやすいので利用し続けています。 生成されるsitemap.xmlファイルは、index.html以外のファイル名 【例えばsample1.htmlやsample2.html】の場合だと、 <url> <loc>http://www.*****.com/ディレクトリ名/sample1.html</loc> <priority>0.5</priority> </url> <url> <loc>http://www.*****.com/ディレクトリ名/sample2.html</loc> <priority>0.5</priority> </url> といった具合になります。index.htmlだと、 <url> <loc>http://www.*****.com/ディレクトリ名/index.html</loc> <priority>0.8</priority> </url> と、index.htmlの場合だと【if文】を使って <priority>の数値が変わるようにプログラムされています。 しかし末尾に、【index.html】と記載されているとグーグルが正確に sitemap.xmlを読み込んでくれないので、 <url> <loc>http://www.*****.com/ディレクトリ名/</loc> <priority>0.8</priority> </url> といった具合で末尾の【index.html】の表記を省略させたいのです。 自動生成PHPファイルのソースを確認すると、 if ($fp){ if (strstr($fileName , "index")) $lastmod = "<changefreq>daily</changefreq>\n <priority>0.8</priority>"; else $lastmod = "<lastmod>{$time}</lastmod>\n <priority>0.5</priority>"; $temp = <<<EOF と記述されている箇所があるので、ここを改造すれば 出来そうな気がするのですが、index.htmlの記載を省略する事は可能なのでしょうか。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#184105
noname#184105
回答No.1

ソース中、 --------------------------元ソースここから------------------- if ($fp){ if (strstr($fileName , "index")) $lastmod = "<changefreq>daily</changefreq>\n<priority>0.7000</priority>"; else $lastmod = "<lastmod>{$time}</lastmod>\n<priority>0.5000</priority>"; $temp = <<<EOF <url> <loc>{$domain}{$path}{$fileName}</loc> {$lastmod} </url> EOF; --------------------------元ソースここまで------------------- ↑の部分を --------------------------変更ソースここから------------------- if ($fp){ if (strstr($fileName , "index")) { $lastmod = "<changefreq>daily</changefreq>\n<priority>0.7000</priority>"; $locPath = $domain . $path; } else { $lastmod = "<lastmod>{$time}</lastmod>\n<priority>0.5000</priority>"; $locPath = $domain . $path . $fileName; } $temp = <<<EOF <url> <loc>{$locPath}</loc> {$lastmod} </url> EOF; fputs($fp , $temp); --------------------------変更ソースここまで------------------- としたらどうでしょう? 変更点としては 質問で指摘のindexを検出している条件分に新たにlocPathという変数を定義して、indexである場合にfileNameを除外し、 実際に出力している場所で固定で記述されていた{$domain}{$path}{$fileName}を{$locPath}としました。 コピペして試してみてください。 なお、未検証です。

ganggg
質問者

お礼

ご回答ありがとうございます。 ご提示くださったソースで検証させて頂いた所、 無事にindex.htmlの表記が消えて正常に動作しました! URL元のソースまでご確認して頂いたようで 非常に感謝しております。 すでに退会されている?ようで このお礼コメントも見て下さるか分かりませんが、 本当に通りすがりでサラッとご回答下さいまして ありがとうございました。 ちょっと対応がカッコ良すぎです・・。

関連するQ&A

  • 複数sitemap.xmlは何ファイルまで?制限はある?

    sitemap.xmlを、 <?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84"> <sitemap> <loc>http://hogehoge.jp/sitemap1.xml.gz</loc> <lastmod>2009-05-15</lastmod> </sitemap> <sitemap> <loc>http://hogehoge.jp/sitemap2.xml.gz</loc> <lastmod>2009-05-15</lastmod> </sitemap> ・・・ </sitemapindex> という形で、複数のsitemapファイルを読むようにしたいのですが、 この方法で何ファイルまで登録できますか?

    • 締切済み
    • SEO
  • sitemapにおける属性の取り扱い

    sitemapの書き方を勉強中です。sitemaps.orgを見ていて疑問に思いました。   http://sitemaps.org/ja/ このページ中のXMLサイトマップのサンプルです。   <?xml version="1.0" encoding="UTF-8"?>   <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">    <url>   <loc>http://www.example.com/</loc>     <lastmod>2005-01-01</lastmod>     <changefreq>monthly</changefreq>     <priority>0.8</priority>    </url>    <url>     <loc>http://www.example.com/catalog?item=12&amp;desc=vacation_hawaii</loc>     <changefreq>weekly</changefreq>    </url>    <url>     <loc>http://www.example.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>     <lastmod>2004-12-23</lastmod>     <changefreq>weekly</changefreq>    </url>    <url>     <loc>http://www.example.com/catalog?item=74&amp;desc=vacation_newfoundland</loc>     <lastmod>2004-12-23T18:00:15+00:00</lastmod>     <priority>0.3</priority>    </url>    <url>     <loc>http://www.example.com/catalog?item=83&amp;desc=vacation_usa</loc>     <lastmod>2004-11-23</lastmod>    </url>   </urlset> このサンプルには5ページが登録されています。そして各々のページの属性として、最初のページから順に   lastmod、changefreq、priority   changefreq   lastmod、changefreq   lastmod、priority   lastmod が登録されています。 何で各々のページで登録されている属性が違うのでしょう。 私がsitemapを書けば、全てのページに全ての属性を登録してしまうのですが。そうじゃなくて登録する属性をページごとに分けるのであれば、その根拠がどこかにありそうなものですが、ちょっとその根拠は見つけられませんでした。 実際にsitemapを書く場合に、属性をページごとに書き分けたりするものなのでしょうか。もし書き分けるなら、どんな場合にどういう風に書き分けるのか、具体的な方法をご教授いただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • グーグルサイトマップでのインデックス期間は?

    XMLファイルを作成しサーバーにアップ、グーグルサイトマップにて登録も済ませたのですがなかなかインデックスされません。 アップしてひと月以上経ちますが30ページほどインデックスされたのみで、全体の1%くらいです。 サイト自体は半年以上前にインデックスされてます。 ファイルの保存形式はUTF-8、ファイル数は約2500ほどです。 最近、無数にあったフォルダを編成しなおして、3つにまとめました。 以前のインデックスがなかなか消えてくれず、新しいURLがインデックスされません。 こんな感じですがインデックスにはどの程度かかるものなのでしょうか。 アドバイスをよろしくお願いいたします。<m(__)m> ファイルの記述はこんな感じです。 <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <url> <loc>http://**********.com</loc> <priority>1.0</priority> </url> <url><loc>http://**********.com/*****/*****.htm</loc><lastmod>2005-11-15T15:37:50+00:00</lastmod></url> ・ ・ <url><loc>http://**********.com/*****/*****.htm</loc><lastmod>2005-11-15T15:37:50+00:00</lastmod></url> </urlset>

  • XMLファイルのアップロードの方法

         宜しくお願い致します 先ごろネットショッピングのHPを立ち上げました。 それでアクセスを増やすために、XMLファイルを作成して グーグルにサイトマップとして送信して登録をしようとしました。 XMLファイルを作る所までは順調だったのですが、自分のHPに アップロードするのがうまくいかなくて弱っています。 ルートディレクトリにアップロードとあるのでその通りにしても、 トップページには、HPのURLが表示されるだけです。 (これでいいのかどうかが分かりません?) sitemap.xml は下記のとおりです <?xml version="1.0" encoding="UTF-8"?> -<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <!-- created with free sitemap generation system www.sitemapxml.jp --> -<url> <loc>http://www3.hp-ez.com/hp/bitowabi/page1/</loc> <priority>1.0</priority> </url> </urlset> 宜しくお願い申し上げます。

  • サイトマップ作成

    http://dokodemo.rankuappu.com/google3.html こちらでサイトマップを作成して、プログラムを取得しましたが、 そのプログラムをHTMLに貼り付けしたら、URL先が表示しただけでした。 取得したプログラムサンプルです <?xml version="1.0" encoding="UTF-8" ?> -<urlset xmlns="http://www.**************"> - <url> <loc>http://********************</loc> <lastmod>2007-10-08</lastmod> <changefreq>weekly</changefreq> <priority>0.5</priority> </url> これをどのように編集していいかわかりません

    • ベストアンサー
    • HTML
  • Google サイトマップ

    宜しくお願いします。 Google サイトマップに xmlファイル を登録したのですが、status が "Parsing error" と表示されています。 詳細: Parsing error (Line 214) We were unable to read your Sitemap. It may contain an entry we are unable to recognize. Please validate your Sitemap before resubmitting. 原因がわかりません。 ちなみに xml ファイルの中身は(略していますが)、 <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <url> <loc>http://www.***.com/</loc> <changefreq>weekly</changefreq> <priority>1.0</priority> </url> <url> <loc>http://www.***.com/XXX/index.htm</loc> <changefreq>weekly</changefreq> <priority>0.5</priority> </url> <url> <loc>http://www.***.com/ZZZ/index.htm</loc> <changefreq>weekly</changefreq> </url> </urlset> です。

  • 携帯サイトをグーグルに登録しようと思うのですが・・・

    グーグルに携帯サイトを登録しようと思っています。サイトマップの作成方法がわかりません。 https://www.google.com/webmasters/sitemaps/docs/ja/protocol.html#escaped など自分で調べたり、他ではある本では 「 <?xml version="1.0" encoding="UTF-8"?> < urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> < url> < loc>登録するURL</loc> < lastmod>最終更新日</lastmod> < changefreq>更新日</changefreq> < priority>サイト内優先順位</priority> </url> </urlset> これ↑に従ったXMLファイルを記述し登録したサイトの一番上位のディレクトリにアップロードする」 と書いてありました。XMLファイルとは何でしょうか? 自分が行った事は 新規ページとして上のタグをソースに書いてファイル名をsitemap.xml.htmとして保存して自分のサイトの一番上位のフォルダにアップロードしました。 https://www.google.com/webmasters/sitemaps/showaddsitemap?siteUrl=http%3A%2F%2Fwww.himadane.com%2Frisuka%2F&hl=ja このページで「モバイルサイトマップを追加」を選択し 3でhttp://www.サイト名.com/sitemap.xmlもしくはhttp://www.サイト名.com/sitemap.xml.htmを記述し 4で「XHMTLモバイルプロファイル(WAP2.0)」を選択し 「モバイルサイトマップを追加」を押しました。しかしエラーでした。 何が違うのでしょうか?親切な方がいましたら教えて頂くとあり難いです

  • sitemap.xmlについて

    sitemap.xmlについての質問です。 1.http://●●●/ 2.http://●●●/index.html どちらも同じページですが、 サイトマップには1と2どちらも登録する必要があるのでしょうか?? ちなみにサイト内のリンクで用いる場合はすべて2のURLで作成しております。 宜しくお願い致します。

    • 締切済み
    • SEO
  • 秀丸エディタのマクロ挿入系について

    こんばんわ 今回は秀丸エディタのマクロ機能についてです。 下記の作業に秀丸エディタのマクロ機能を駆使したいのです。 今、入手したいマクロは文字列を検索して その文字列の後に文字を挿入するといったものです。 例を出すとXMLファイルにて <url> <loc>URL</loc> ←「検索」 [<mobile:mobile/>]←をここに挿入したいのです。 <priority>1.00</priority> <lastmod>1970-01-01T00:00:00+00:00</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>URL</loc> <mobile:mobile/> <priority>0.80</priority> <lastmod>1970-01-01T00:00:00+00:00</lastmod> <changefreq>daily</changefreq> </url> <url> <loc>URL</loc><mobile:mobile/> <priority>0.80</priority> <lastmod>1970-01-01T00:00:00+00:00</lastmod> <changefreq>daily</changefreq> </url> <url> ・ ・ ・という感じに・・・ この処理をマクロにて何行も行いたいのです。 この処理が数行でしたらいいのですが 何分、数がとても多くて^^; そんなわけで、この機能の秀丸マクロを知っていたら ご回答いただければ幸いです。

  • sitemap.xmlでINDEXファイルしか

     サイトのサイトマップを自動作成したのですが、インデックスファイルしか記述されません。ホームページビルダーのビジュアルサイトビューをみるとちゃんとした階層構造になっており誤りなどありまん。しかし、sitemap.xmlをひらいてみるとトップページしか拾ってくれません。ビジュアルサイトビューではちゃんと三層構造となっているのに、インターネットで閲覧するとhttp://A.com/B.html/C.htmlとなるところが http://A.com/C.htmlの2層構造になっております。何が原因で、INDEXファイルしか記述されないのかわかりません。どなたかご教授お願いいたします。

専門家に質問してみよう