
Apache + PHPのサイトで、PHPファイルの拡張子を
表示させない設定について質問です。
例えば、list.php や news.php にアクセスする
時に
http://xxx.com/list?year=2004
http://xxx.com/news?no=15
のように使えるようにしたいと考えています。
いくつか調べてみたのですが、どうやら、
.htaccess ファイル内に
Options +MultiViews
を書き込んだりするらしい、というところまでは
なんとか分かったのですが、具体的な設定記述を
書いている情報にたどりつけませんでした。
どなたかご存知の方がいましたら、教えていただ
けませんでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
興味を持って調べた矢先、Googleで「.htaccess」「拡張子無し」でズバリの回答が一発でヒットしました^^;)。
実験していないのでどのバージョンでもうまくいくのかは不明です。
参考URL:http://iwamode.com/etc/urawaza.html
この回答への補足
情報ありがとうございます。
参考URL確認させていただきました。
とりあえず、拡張子を見せない、という目的は達成
できそうですが、この方法で拡張子を見せなくする
ためには、既存のPHPファイルの拡張子をすべて変更
する必要があり、更にはPHPファイル内のURLまで変更
しなければなりません。大量です(涙)。
さらに、対外的にリンクしてもらっていたPHPファイル
へのリンクが切れてしまいます。
できれば、PHP拡張子付きのままで隠す方法があり
ませんでしょうか?
yatokesaさん、ありがとうございました。
今回、イメージしていたものとぴったりくるものは出来ないようですが、yatokesaさんから教えていただいた方法が、一番それに近いことを実現できそうです。
また機会がありましたらよろしくお願いします。
No.4
- 回答日時:
>できれば、PHP拡張子付きのままで隠す方法がありませんでしょうか?
AliasMatchを使えば可能です。
(ただし、以下の例の場合、画像ファイル等もphpと見なします。)
AliasMatch "/path/to/php/(.+)" "/path/to/php/$1.php"
参考URL:http://httpd.apache.org/docs-2.0/ja/mod/mod_alia …
ありがとうございます。
AliasMatch ですね。参考URLを読んでみたのですが、まだ理解できていないので、他の情報とあわせて調べて見ます。
No.3
- 回答日時:
>できれば、PHP拡張子付きのままで隠す方法がありませんでしょうか?
apache側で拡張子を補完してということですよね。これはちょっと無理だと思います、私の知る限り...。
ErrorDocument 404 /redirect.php
の様に、例えば http://xxx.com/news?no=15 という存在しないファイルへのアクセスを redirect.phpというプログラムで受けて news.phpへ QUERY_STRINGSと共に渡すことはできるかもしれません。
前後しますが、
>更にはPHPファイル内のURLまで変更しなければなりません。大量です(涙)。
これは sedなどで一括置換で、
>対外的にリンクしてもらっていたPHPファイルへのリンクが切れてしまいます。
に関しても先の error documentの機能を使ってリダイレクトでという事も可能かと思います。
No.1
- 回答日時:
.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へ偽装(?)
ではなく、拡張子全般の隠蔽、といったところで
しょうか。
回答ありがとうございました。
私がさがしていた方法とは違いましたが、chuparkさんから教えていただいた方法が、正攻法みたいですね。
別の機会に参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
拡張子PHP3のスクリプトを...
-
phpのheader("Location:#pos")...
-
PHPのif文でその処理を途中で抜...
-
Apache 2.4でphp-5.3を使いたい...
-
phpの中でphpを書けないか
-
require_once()でファイルが読...
-
header(Location:~)で$_SESS...
-
さくらインターネットでメール...
-
フォームで戻った際に入力済み...
-
PHPでメールを受信するには?
-
php4とphp5での数値の取り扱い...
-
PEAR(Image_QRCode)のエラー
-
テレメールとは?
-
再度、xamppにおけるjpgraphの...
-
<A href ~ と一緒に値を渡すには
-
PHP版のPDFlibのインストール
-
【PHP】tmp_nameの命名規約につ...
-
PHPからMSSQLへの接続結果の文...
-
phpのextension_dirを複数指定...
-
HYのAM11:00のラップの部分の歌...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
拡張子PHP3のスクリプトを...
-
.forwardを利用した、メールを...
-
PHP⇒MySQL CSVファイルのアッ...
-
パスワード等が記述されているp...
-
別ファイルの変数を呼び出した...
-
入力フォームの空白や改行を制...
-
シェルスクリプトからphpファイ...
-
別PHPファイルに変数を渡す
-
MySQLの配置が変わったため、db...
-
呼び出し元のファイル名を取得...
-
#!/usr/local/bin/phpはどこに...
-
crontabでPHPスクリプトが実行...
-
fputcsvで保存せず、そのまま出...
-
include先でのinclude元の変数...
-
PHP PEARパッケージのincludeが...
-
こちらはただの直列処理ですか?
-
エラー発生!!
-
plesk 7.5 導入サーバーで php....
-
phpinfo.phpを開くとファイルの...
-
1行目の#! "C:\\xampp\\php\\p...
おすすめ情報