拡張子を隠す方法について

このQ&Aのポイント
  • 拡張子を隠す方法についてご質問があります。
  • .htaccessに制限があるため、拡張子を隠す方法に制約があります。
  • php.iniの設定を試してみることをおすすめします。
回答を見る
  • ベストアンサー

拡張子を隠す方法について2

以前拡張子を隠すご質問を行い、とりあえずやってみようと色々とやってみたのですが反映されずエラーになってしまいます。 調べた結果、共有サーバーのため.htaccessに制限がありました。 ◇ ご利用いただけない記述の例 DirectoryIndex 例:DirectoryIndex index.php index.shtml Digest認証 例:AuthType Digest mod_headers Header ディレクティブ 例:headers_module AddTypeの一部記述 AddType ディレクティブ 例:AddType application/x-httpd-php .php .html Options ディレクティブ 例:Options FollowSymLinks RewireEngineディレクティブ 例:RewriteEngine On 制限されているとは知らず試したものは ForceType application/x-httpd-php や AddType application/x-httpd-php なのですが、制限されている以上不可能なのでしょうか? php.iniは設定できるようです。 やりたいことはこのご質問と同じだと思うのですが http://soudan1.biglobe.ne.jp/qa5542492.html xxx.php を xxx のように拡張子を隠すのと xxx.php?id=123 を xxx.php/123 のようにGETで渡す番号だけにしたいということです。 何か設定で試したほうが良い方法がございましたら、どうかお知恵をお貸しください。 よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

>php.iniに.htaccessの >AddType application/x-httpd-php >ような拡張子を隠す手段はありませんでしょうか? ありません。 php.ini はphpスクリプトとして実行される段階で参照されて意味を持ちます。phpスクリプトとして実行される状態になっていないものには何ら影響を与えられません。

milkkokoa94856
質問者

お礼

ご回答ありがとうございました。 mod_rewriteの方で試してみたいと思います。共有サーバーなのでmod_rewriteが未導入でないことを祈ります(笑)

その他の回答 (1)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>制限されている以上不可能なのでしょうか? 制限されている以上は無理です。 mod_rewriteは制限されていないようなので、xxx へのアクセスを xxx.php に内部rewriteするしかないです(制限されていないけど、そもそも未導入という罠はあるかもしれません・・・)。 >xxx.php?id=123 >を >xxx.php/123 >のようにGETで渡す番号だけにしたいということです。 QueryString形式ではないので$_GETにはセットされません。substr($_SERVER['PATH_INFO'], 1) で切り出せばいいと思います。 ただし、ブラウザはxxx.phpでなく xxx.php/123 というファイルにアクセスしていると認識していますので、外部CSSだのimg要素(のsrc属性)だのを全部DocumentRootからのpathで記述しないといけませんのでご注意ください。

milkkokoa94856
質問者

補足

ご回答ありがとうございます。 php.iniについては制限が書かれていないのですが、php.iniに.htaccessの AddType application/x-httpd-php ような拡張子を隠す手段はありませんでしょうか?

関連するQ&A

  • 拡張子なしのファイルを稼働させる.htaccessの設定

    path_infoで動的ページの静的処理をしようとしています path_infoをつかって xxx.php?id=123 を xxx.php/123 や xxx.php/123.html などの入力で動くようにはできたのですが、.phpをはずすべく .htaccess内の設定でうまくいきません。 ネットで出てきた方法として2つ見つかったのですが、 <FilesMatch "^xxx$"> ForceType application/x-httpd-php </FilesMatch> とするとファイルが見つかりませんになります <FilesMatch "^xxx$"> AddType application/x-httpd-php </FilesMatch> とするとInternal Server Error(500 error)になります これは何が悪いのでしょうか。 どこをどうすれば拡張子なしで認識するようになるのでしょうか。 .htaccessの使用はサーバーで認められていて、以前からDirectoryIndexやErrorDocumentの設定をして使用しています PHPは4と5の両方で試しましたが、どちらでも同じ結果でした どうかお分かりの方ご教授ください。 よろしくお願いします。

  • htaccessのAddTypeが使えないサーバで.phpファイルを.htmlとして表示させる方法は?

    利用サーバではhtaccessのAddTypeが使えない機能制限があるそうで、サーバで.phpファイルを.htmlとして表示させることが、以下のhtaccessへの記述ではできません。 AddType application/x-httpd-php .php .html どこかに書いてあったので以下も試しましたがダメでした。 <FilesMatch "html$"> ForceType application/x-httpd-php </FilesMatch> どうにかして代替方法が欲しい状態でが何か良い方法がないでしょうか。 どうぞ宜しくお願い致します。

    • 締切済み
    • PHP
  • index.phpのページが開けない

    unix系のOSを使用しています。 apache、phpをインストールしましたが、 一度再起動したところ、inde.phpのファイルが開けなくなってしまいました。 /etc/apache2/httpd.confで以下追加設定しています。 AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps DirectoryIndex index.html index.php apacheの再起動をおこなってもphpのテストページが表示できません。 ファイルのダウンロード?のようなアプリケーションで開く、またはディスクに保存するという選択の画面が出てしまいます。 これは何が間違っているのでしょうか。

    • ベストアンサー
    • PHP
  • 拡張子がhtmlでもphpスクリプト実行したい

    webサーバがApacheの、レンタルサーバーでホームページを作っております。フレームの代わりにphpのincludeを使ってメニュー等を表示しています。しかし最終的に表示されるページの拡張子がphpでないと、きちんと表示されません。拡張子がhtmlでもphpスクリプトが実行されるようにしたくて、色々調べていたのですが、それらしき方法を発見しました。 Apacheで言えばhttpd.confの AddType application/x-httpd-php .php というところを例えば AddType application/x-httpd-php .php .html にするだけで、*.phpでも*.htmlなファイルであってもそこに埋め込まれているPHPスクリプトは実行されるようになる。 …とあったのですが、何をどう加えるか、もしくは変えればいいのかサッパリです。 もっとこっちの方が簡単だ、など、詳しい方いらっしゃいましたら、どうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP5とApache2.2.2を選びましたが。。。

    現在、PHP5の設定で戸惑っています。 httpd.confファイルでの設定で、 LoadModule php5_module D:/php/php5apache2.dll AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps DirectoryIndex index.html index.php を追記しましたが、どうしても115行目の LoadModule php5_module D:/php/php5apache2.dll でアラーらしき症状が出てPHPが動作してくれません。 cgi,phpの動作ディレクトリは”D”で設定しています。 どなたかアドバイスの程、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHPを拡張子htmlで動かすには?

     phpを拡張子.htmlでも動くようにしたいのですが・・・ .htaccessで AddType application/x-httpd-php .html を指定しています。 ブラウザで試してみると、 http://***.***.***/index.html = 動作OK http://***.***.***/ = ファイルのダウンロード となってしまいます。 ブラウザでファイル名を直接指定すれば問題ないですが、 index.htmlは、ブラウザからドメインのみ指定した場合 ファイルのダウンロードとなってしまいます。 また、サーバーはロリポップを使ってます。 解決方法がお分かりになる方いらっしゃいましたら、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • .htaccessでの設定について

    はじめまして。 .htaccessの設定で質問があります。 .htaccessで「AddType application/x-httpd-php .html」と設定し、 PHPのファイルをhtmlの拡張子で表示するようにしています。 全てのファイルで.htmlがPHPとして動作しないように、 <Files index.html> AddType application/x-httpd-php .html </Files> としています。 上記の設定でindex.htmlだけPHPとして動作すると思いますが、 これをあるDirectoryのindex.htmlだけに限定することはできないのでしょうか。 具体的には、 /htdocs/index.html では、PHPとして動作し、 /htdocs/test/index.html では、PHPとして動作しないようにしたいのです。 よろしくお願いします。

  • php拡張子を無くす

    共用サーバーを利用している為、Apacheを触ることが出来ない為、.htaccessファイルに以下のように記述し設定をしています。 &lt;Files *.php&gt; ForceType application/x-httpd-php &lt;/Files&gt; この設定では、「index」「index.php」どちらもアクセスするとPHPが動作してしまいます。 「index」は動作させて「index.php」は動作させないようにすることは可能でしょうか? もし可能であれば、方法を教えていただけないでしょうか? ちなみに、php.iniは触ることができます。

    • ベストアンサー
    • PHP
  • まだphpmyadminのタイトル画面がでません

    Vine Linuxです。 apacheとphpinfoのテスト用画面は正常に出力されます。 しかし、ブラウザでphpmyadminのタイトル画面を表示したときには、そのディレクトリの中(phpmyadmin)のファイル構成が出てくるだけでした。 {インストール先ディレクトリ}/index.php でアクセスしようとするとNotFoundになりますので、 apacheのhttd.confに次のような記述を追加しました。 Alias /phpmyadmin/ "/var/www/html/phpmyadmin" <Directory "/phpmyadmin"> Options -Indexes FollowSymLinks Order deny,allow Allow from xxx.x.x.x Allow from xxx.xxx.xx.x <Directory> (xxxというのは接続するPCのアドレスが入ります) また、下記のサイトで出ていました、 http://ziddy.japan.zdnet.com/qa4458048.html 1. httpd.conf の DirectoryIndex ディレクティブに index.php が含まれていない。 2. httpd.conf に AddType application/x-httpd-php .php がない。 3. httpd.conf で Options -Indexes FollowSymLinks が指定されていない。または Options Indexes FollowSymLinks が指定されている。 の設定対応も行っています。 ここまでの設定でもブラウザでの表示は変化ありません。 足りない設定など、改善に向かうヒントがありましたら、ご教授いただけないでしょうか? よろしくお願いします。

  • 拡張子htmlでphpが動作するフォルダと動作しないフォルダを作成する方法

    【やりたいこと】 htdocs フォルダ直下に約100個のフォルダがあるのですが、 その中の特定のフォルダだけは、 拡張子 html で php が動作しないようにしたいです(特定のフォルダ以外では拡張子 html で php が動作して欲しいです)。 また、拡張子 php に関してはどのフィルダでも php が動作するようにさせたいです。 【試したこと】 1. httpd.confに AddType application/x-httpd-php .php .html と記述(拡張子 html で php が動作する事を確認)。 2. httpd.confに <Directory "/usr/local/apache2/htdocs"> AllowOverride All </Directory> と記述し、ドキュメントルート以下で .htaccess が使えるようにする。 3. htaccess に AddType application/x-httpd-php .php と記述し、拡張子 html で php の実行が無効化されないか試してみましたが、 拡張子 html で php が実行されてしまいNG。 4. htaccess に php_flag engine off と記述し、拡張子 html で php の実行が無効にならないかなと試してみて、 無効化されるのは確認しましたが、 そのフォルダ内では拡張子 php でも php の動作が無効化されてしまいNG。 ここで手詰まりとなってしまいました。 以上、よろしくお願いします。

専門家に質問してみよう