0

私はshtml拡張子のページがあるサイトを持っています。これは主に、メニューナビゲーションバーをSSIで正しく表示するために行われます。現在、phpを使用してページを追加しています。このページを正しく機能させるために、php拡張子を付けました。これにより、メニューが表示されなくなります。また、率直に言って、shtml拡張子は、私のサイトを使用するほとんどの人にとって奇妙なものだと思います。可能であればすべてのページでphp拡張子に変更したいのですが、shtml拡張子を使用しなくなった場合に、SSIを再フォーマットして正しく表示するにはどうすればよいですか?

現在関心のあるコードは<!--#include virtual="/Navbar.shtml" -->

4

3 に答える 3

0
<!--#include virtual="/Navbar.shtml" -->

<?php require '/Navbar.php' ?>
于 2011-04-19T08:24:38.973 に答える
0

SSIを使用してローカルファイルを含めると、静的ソースファイルが使用されます。この場合は、解析されていないPHPソースコードです。

これを機能させるには、リモートインクルードを実行する必要があります(<!--#include virtual="http://localhost/Navbar.shtml" -->サーバー構成によっては、など)。新しいサーバーリクエストとPHPインスタンスが開始されるため、これは最適ではありません。

このためにSSIを削除し、@Alinが示すようにPHPインクルードを使用することをお勧めします。

于 2011-04-19T08:26:11.303 に答える
0

サーバーサイドインクルードコードを次のように変更するだけです。

<?php require "/Navbar.php" ?>

と名前Navbar.shtmlを変更しますNavbar.php

Requireとは、エラーが発生し、Navbar.phpがない場合にページがまったく読み込まれないことを意味します。同様のincludeを使用することもできますが、ページをロードできます。includeとrequireの詳細については、次のマニュアルページをお読みください。

http://www.php.net/manual/en/function.include.php
http://php.net/manual/en/function.require.php

お役に立てれば :)

于 2011-04-19T08:28:03.760 に答える