• 締切済み

HTML内でのPHPスクリプト実行

いつもお世話になります。 PHP + MySQL でデータベースを構築しました。 今回、トップページ(index.html)にそのデータベースの情報のうちの一つを 自動でかつランダムに取り出してきて表示させたいと思い、 index.html にアクセスした際に JavaScript で自動で新しいウィンドウを開き、 そこでランダム取得用の PHP スクリプトを実行、 ランダムに取得した情報を新しく開いたウィンドウに表示するところまで出来ました。 しかし、アクセスするたびに新しいウィンドウが開いてしまう為、 index.html と ランダム表示処理を一つにまとめることは出来ないかと思っています。 質問1. そもそも index.html 内に PHPスクリプトを埋め込むということは出来ないのでしょうか? 質問2. index.html を表示したら、すぐにメタタグや JavaScript で index.php(トップページ表示+ランダム表示処理)などに リダイレクトすれば実現可能とは思いますが、SEO 的に心配です。 この場合、検索エンジンからどの程度のペナルティを食らうのでしょうか? また、それは元に戻せばペナルティ解除されるのでしょうか? どなたかお分かりの方がおられましたら、ご教授下さい。 よろしくお願い致します。

みんなの回答

回答No.4

私も同じものを使ってます。 質問1 htaccessで可能 アクセス解析は違うものを導入 質問2 JavaScriptはダメです。クロール力が低くなります。 ・googleはかろうじて程度。 ・YSTは確か不可か僅か?。 ペナルティというよりは、クローラーがクロールしづらくなります。 この場合SEO的には、ランダム処理をPHP内で行いhtaccessを導入してアクセス解析の変更が一番の方法かと思います。

yabudoctor
質問者

お礼

ご回答ありがとうございます。 ランダム表示機能はhtaccessにより、なんとか実現できました。 SEOの視点ではJavaScriptはよくないのですね。 参考になりました。 ありがとうございました。

  • yoneda_16
  • ベストアンサー率47% (166/350)
回答No.3

私だったら、index.htmlにはデータベースアクセスロジックそのものは埋め込まないです。index.htmlにPHPでロジックを埋め込むと、アクセスが増加した際にかなりサーバ負荷が上がりそうなので。 データベースから表示する情報のリアルタイム性はそれほど重要じゃないと仮定するならば。 index.htmlには表示したい内容の全てを埋め込み、JavaScriptでパターンA、パターンB、パターンC…のどれが表示されるかをクライアントサイドで乱数で決定させるロジックにして。index.htmlの生成はタイマーやその他のイベントで実行するという形にするだろーな。 回答と言うよりは「私ならこうする」って話ですが、まあ参考までに。

yabudoctor
質問者

お礼

ご回答ありがとうございます。 なるほど、サーバ負荷の問題がありますね・・・。 お教え頂いた方法は使わせて頂きたいところですが、 数千件の情報を随時更新している為、残念ながら活用が難しいかもしれません。 別の機会にこの手法を使わせて頂きたいと思います。

  • umota
  • ベストアンサー率46% (150/324)
回答No.2

OS, WEB サーバの情報が無いのですが。。。 > 質問1. そもそも index.html 内に PHPスクリプトを埋め込むということは出来ないのでしょうか? Apache ならば httpd.conf 内の AddType application/x-httpd-php .php を AddType application/x-httpd-php .php .html とすれば 拡張子=html で PHPスクリプトが有効になります。 (ここに記述すれば任意の拡張子で使うことができます)

yabudoctor
質問者

お礼

ご回答ありがとうございます。 サーバはレンタルサーバで、WEBサーバは Apache 、OS は Linux です。 お教え頂いた文を .htaccess に追加したら、うまくいったのですが、 これにより index.html で動かしていた SSI のアクセスログ取得処理(CGI)が 動かなくなってしまいました。 <.htaccess の内容> Addtype text/x-server-parsed-html .html Addtype application/x-httpd-php .php .html ← 今回追加 アクセスログ取得SSI <!--#exec cgi="./cgi-bin/log.pl"--> ためしに .htaccess を元に戻すとログ取得が再開されます。 ディレクトリ指定ミスというわけでもありません。 index.html で SSI と php の同時処理をさせるにはどうしたらよいでしょうか・・・?

  • GETSTREET
  • ベストアンサー率18% (14/74)
回答No.1

index.html→index.phpに変更してindex.phpにphpを記述すればいいかと思います。

yabudoctor
質問者

補足

ご回答ありがとうございます。 その方法は考えてみたのですが、 index.html にブックマークしてくれている方が多いので、 どうしても index.html に最初のアクセスが来てしまいます。 そこで、index.html 内で処理するか、リダイレクトするかという考えになったのです。 他に手段は無いのでしょうか・・?

関連するQ&A