2009-07-13 3 views
0

これは好奇心の問題です。".html"を使用して.html.phpファイルにリンクする - 魔法は何ですか?

私は(Sitepoint's latest PHP/MySQL book)から、HTMLとPHPの両方を持つファイルを示すために、拡張子 ".html.php"を使用して説明した章を読んでいました。私はそれを試してみて、これを発見:

私はファイル「fileA.html.php」を持っている、とどこかに「fileB.html」で私は以下のようなものをリンクしている場合:

<a href="fileA.html">Text text</a> 

を私はしていますロジックと本であっても、正しく解析されたfileA.html.phpに直接リンクすることができるので、href="fileA.html.php"と書いたはずです。

誰でも、どのようなPHP関数がこれをしているのか、それとも単にPHPの標準的な動作ですか? (私が不平を言っているのではなく、それは私のクライアントが気づいて、涼しいと思っていたものです)。

答えて

3

これを行うにはサーバーを設定する必要があります。 Apacheを使用している場合は、htaccess書き換えルールや他のプロセッサを使用して、これを達成するためのさまざまな方法があります。

しかし、あなたがそれらの長さに行くつもりなら、どうしてhtmlが必要なのですか?適切な拡張タイプ(その場合は単に.php)を指定してファイルを提供するか、または拡張子なしか拡張子付きかを選択します。まったくそれをやる唯一の理由は、あなたのユーザーをより簡単にすることです。それ以外の場合は、拡張子を変更する利点はありません。

+2

+1は、言語に依存しないURLに向けるためのものです。あなたは "fileA /"を指し、index.phpをディレクトリに置くことができ、ほとんどのWebサーバは私の知る限り、自動的に "fileA/index.php"を提供します。 .htmlまたは.anythingに変更した場合は、URLを変更する必要はありません。 – l0b0

+0

私の.htaccessだった。私は実際にそれを書かなかったので、私は "AddHandler application/x-httpd-php .htm .php"という行を知らなかった。 私はPHPファイルにHTMLコードもあることを伝えるために、.htmlファイルを追加しました。 index.phpトリックについては、私はそれを認識していますが、非常にシンプルで小さなサイトであるため、限られた数量でのみ使用しています。 – curagea

0

私はこのような動作について聞いたことがありません。念頭に置く唯一の事は何らかのhtaccess書き換えモーフです

5

PHPが原因ではありません。 Apacheはおそらくmod_spellingを有効にしており、リンクを自動修正しています。その動作は、構成が異なるサーバー間で一貫しません。

-1

私は通常、.htaccessファイルでこれを置く:これは本質的には、.phpファイルであるかのように.htmlファイルを処理することを意味

<Files *.html> 
AddHandler application/x-httpd-php .html .htm .php 
</Files> 

0

また、あなたのすべての.htmlファイルは、現在内部解析できる

AddType application/x-httpd-php php 
AddType application/x-httpd-php html 

あなたのhttpd.confに追加することができます。

私はよりクーラーだと思います。

HTH

関連する問題