重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Apache + PHPのサイトで、PHPファイルの拡張子を
表示させない設定について質問です。

例えば、list.php や news.php にアクセスする
時に

 http://xxx.com/list?year=2004
 http://xxx.com/news?no=15

のように使えるようにしたいと考えています。


いくつか調べてみたのですが、どうやら、
.htaccess ファイル内に

 Options +MultiViews

を書き込んだりするらしい、というところまでは
なんとか分かったのですが、具体的な設定記述を
書いている情報にたどりつけませんでした。

どなたかご存知の方がいましたら、教えていただ
けませんでしょうか?
よろしくお願いします。

A 回答 (4件)

興味を持って調べた矢先、Googleで「.htaccess」「拡張子無し」でズバリの回答が一発でヒットしました^^;)。


実験していないのでどのバージョンでもうまくいくのかは不明です。

参考URL:http://iwamode.com/etc/urawaza.html

この回答への補足

情報ありがとうございます。
参考URL確認させていただきました。

とりあえず、拡張子を見せない、という目的は達成
できそうですが、この方法で拡張子を見せなくする
ためには、既存のPHPファイルの拡張子をすべて変更
する必要があり、更にはPHPファイル内のURLまで変更
しなければなりません。大量です(涙)。

さらに、対外的にリンクしてもらっていたPHPファイル
へのリンクが切れてしまいます。

できれば、PHP拡張子付きのままで隠す方法があり
ませんでしょうか?

補足日時:2004/09/07 23:59
    • good
    • 0
この回答へのお礼

yatokesaさん、ありがとうございました。

今回、イメージしていたものとぴったりくるものは出来ないようですが、yatokesaさんから教えていただいた方法が、一番それに近いことを実現できそうです。

また機会がありましたらよろしくお願いします。

お礼日時:2004/09/21 22:37

>できれば、PHP拡張子付きのままで隠す方法がありませんでしょうか?



AliasMatchを使えば可能です。
(ただし、以下の例の場合、画像ファイル等もphpと見なします。)

AliasMatch "/path/to/php/(.+)" "/path/to/php/$1.php"

参考URL:http://httpd.apache.org/docs-2.0/ja/mod/mod_alia …
    • good
    • 0
この回答へのお礼

ありがとうございます。

AliasMatch ですね。参考URLを読んでみたのですが、まだ理解できていないので、他の情報とあわせて調べて見ます。

お礼日時:2004/09/21 22:34

>できれば、PHP拡張子付きのままで隠す方法がありませんでしょうか?


apache側で拡張子を補完してということですよね。これはちょっと無理だと思います、私の知る限り...。

ErrorDocument 404 /redirect.php
の様に、例えば http://xxx.com/news?no=15 という存在しないファイルへのアクセスを redirect.phpというプログラムで受けて news.phpへ QUERY_STRINGSと共に渡すことはできるかもしれません。

前後しますが、
>更にはPHPファイル内のURLまで変更しなければなりません。大量です(涙)。
これは sedなどで一括置換で、
>対外的にリンクしてもらっていたPHPファイルへのリンクが切れてしまいます。
に関しても先の error documentの機能を使ってリダイレクトでという事も可能かと思います。
    • good
    • 0

.htaccessを使う方法ではないですが…



Apacheの設定ファイル httpd.conf の
AddTypeの記述でPHPを実行可能にしている部分ですが

AddType application/x-httpd-php .php

こんな感じにしていますか?

これを例えば以下のように

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

と書いておくと、PHPのファイルを *.htmlや*.htm などの拡張子で保存しておいてもPHPが実行されるはずです。

こうしておけば、URLにも.phpとしなくてもOKじゃないでしょうか?

この回答への補足

情報ありがとうございます。
先日、その方法も見つけました。しかし、その方法
だと、

 http://xxx.com/list.html?year=2004
 http://xxx.com/news.html?no=15

となり、HTML拡張子が付いてしまうんですよね。
今回やりたいのは、拡張子PHPをHTMLへ偽装(?)
ではなく、拡張子全般の隠蔽、といったところで
しょうか。

補足日時:2004/09/07 01:35
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

私がさがしていた方法とは違いましたが、chuparkさんから教えていただいた方法が、正攻法みたいですね。
別の機会に参考にさせていただきます。

お礼日時:2004/09/21 22:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!