人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: petem
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP コード 作成
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● ysog
●27ポイント

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は絶対パス指定に換えた方がいいです。

◎質問者からの返答

ありがとうございます。

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

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

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


2 ● ヨネちゃん
●27ポイント

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

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


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

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

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

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

◎質問者からの返答

ありがとうございます。

実験してみます。


3 ● tokyosmash
●26ポイント

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だと思います。そのうちきちんとインデックスされるはずです。

◎質問者からの返答

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

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


ありがとうございます。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ