PHPで静的ページを作成するにはどうすればよいのでしょうか。


(コードも教えていただけるとうれしいのですが。。。)

回答の条件
  • 1人10回まで
  • 登録:2007/06/10 17:31:00
  • 終了:2007/06/17 17:35:03

回答(3件)

id:ysog No.1

ysog回答回数9ベストアンサー獲得回数02007/06/10 19:06:12

ポイント27pt

SEO対策等のために動的なPHPを静的に見せたいとのことなら…

仮にtest.phpというプログラムが在ると仮定します。

まずPHPの拡張子を外しましょう

test.phpをリネームしてtestにします。

そして.htaccessという名前のファイルに以下の内容を書き込みます。

<FilesMatch "^test$">

ForceType application/x-httpd-php

</FilesMatch>

これはtestというファイルはPHPとして動作させなさいという意味です。

これで拡張子が無くてもtestというファイルはPHPとして実行できます。

こんな感じで

http://hogehoge.jp/test


次に、?&=などが入るGETの引数の代わりにPATH_INFOで引数を得るようにします

たとえば以下のようなURLで実行した場合

http://hogehoge.jp/test/apple/orange/grape


$_SERVER['PATH_INFO']に/apple/orange/grapeと入っています。

あとは先頭の/をsubstr関数で削ってpreg_splitで分割すればOK

$ary = preg_split("[/]",substr($_SERVER['PATH_INFO'],1));


注意点としては、画像やcssを相対パス指定していると/が着いてるがためにおかしくなります。

画像やcssは絶対パス指定に換えた方がいいです。

id:petem

ありがとうございます。

>動的なPHPを静的に見せる

これはサーバ内にどんどん静的ページが貯まっていくのでしょうか?

それとも動的を静的に見せるのみでしょうか?

2007/06/10 20:20:18
id:yoneto164 No.2

ヨネちゃん回答回数813ベストアンサー獲得回数942007/06/10 21:29:24

ポイント27pt

上記の方法は動的を静的に見せるのみです。

静的なファイルが作成されるわけではありません。


他に httaccess の Rewrite を使う方法もあります。

http://www.nishishi.com/blog/2006/01/dynamic_to_stat.html

この場合、外部ファイルへの相対パス以外は PHP のソースを書き直す必要はありません。

この方法も動的を静的に見せるのみです。

id:petem

ありがとうございます。

実験してみます。

2007/06/11 07:30:20
id:tokyosmash No.3

tokyosmash回答回数100ベストアンサー獲得回数62007/06/11 04:17:30

ポイント26pt

petemさんの言う動的URLって具体的にどんなのですか?

http://www.hoge.com/entry?ID=4

こんな感じでしょうか?ようするにGETデータを含むもの。確かにこれは検索エンジン的に「動的」と見なします。?や&などの記号ですぐにバレます。

上記URLを静的URLにするとこうなります。

http://www.hoge.com/entry4.php

http://www.hoge.com/entry4.html

http://www.hoge.com/4/

全て静的URLと呼ばれます。

要するにこんなすっきりしたURLの事を静的と呼んでいるだけで、特に決まった形式があるわけではないです。


一番簡単(といかこれしか知りません)な方法はyonetaさんも書いておられますがmod_rewriteです。.htaccessはご存知ですか?そこに記述します。


mod_rewriteで静的URLを「作った」場合、それはサーバー上にファイルとして存在しません。普通のHTMLファイルやPHPファイルは存在しますよね?サーバーにFTPで接続すれば一目瞭然です。

動的ファイルの静的化とは、mod_rewriteによって形の無いものを、形のあるように見せかけているようなものです。

コメント欄の

>サーバ内にファイルは存在しなけれど検索エンジンにindexされるページ数は増えていく

はその通りだと思います。

>検索結果は更新される

静的URLと同様の扱いを受けます。検索エンジンからすれば静的URLも、静的に見せかけたURLも同じにしか見えません。

例えばこの質問ページも静的に見せかけたURLだと思います。そのうちきちんとインデックスされるはずです。

id:petem

>静的URLと同様の扱いを受けます。検索エンジンからすれば静的URLも、静的に見せかけたURLも同じにしか見えません。

>例えばこの質問ページも静的に見せかけたURLだと思います。そのうちきちんとインデックスされるはずです。


ありがとうございます。

疑問が晴れてスッキリしました。

2007/06/11 07:31:06
  • id:petem
    動的ページですと検索エンジンに拾われない(にくい?)ためです。
    PHPでできると小耳に挟みまして。
  • id:ysog
    >これはサーバ内にどんどん静的ページが貯まっていくのでしょうか?
    >それとも動的を静的に見せるのみでしょうか?
    後者が正解です。URLが見かけだけ静的っぽくなってるだけです。
  • id:petem
    コメント欄にありがとうございます。


    URL見た目が静的っぽくなり、検索エンジンに拾われるということは、

    「サーバ内にファイルは存在しなけれど
     検索エンジンにindexされるページ数は増えていく」

    という感じでいいのでしょうか?

    その場合、検索結果は更新されるのでしょうか??

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません