共用サーバーを利用している為、Apacheを触ることが出来ない為、.htaccessファイルに以下のように記述し設定をしています。
<Files *.php>
ForceType application/x-httpd-php
</Files>
この設定では、「index」「index.php」どちらもアクセスするとPHPが動作してしまいます。
「index」は動作させて「index.php」は動作させないようにすることは可能でしょうか?
もし可能であれば、方法を教えていただけないでしょうか?
ちなみに、php.iniは触ることができます。
No.5ベストアンサー
- 回答日時:
何度か試行錯誤しました。
結論としては、DefaultTypeを変更するのが簡単かつスマートだと思います。
* コンテントネゴシエーション(Options +Multiviews)で拡張子無しのファイルをphpスクリプトとして実行させる
foo.php がないと動作せず、foo.php でも foo でもアクセスできてしまいます。
RewriteCond(%{REQUEST_URI})で拒否する手は有りそうですが、ちょっと面倒ですね。
----- .htaccessの記述 -----
Options +Multiviews
DirectoryIndex index
MultiviewsMatch Handlers
---------------------------
Multiviewsのススメ
http://blog.fuktommy.com/1216313223
* DefaultTypeを変更して、拡張子無しのファイルをphpスクリプトとして実行させる
foo.php を foo にリネームして期待通りの結果を得られました。
----- .htaccessの記述 -----
DefaultType application/x-httpd-php
---------------------------
No.6
- 回答日時:
#2,4,5 です。
今更ですが、気になったことが。
> http://www.***.com/index?aaa=1&bbb=2 ←動作する
> にするとPHPで書かれてることが分からないようになるかなと思いまして・・・
クエリを投げているので、動的処理が行われていることはわかります。
質問自体を覆すようですが、「PHPで書かれてることが分からないようにする」目的は何なのでしょうか?
目的がSEO対策だとしたら、mod_rewriteでクエリ自体をURLに埋め込むのが一般的かな、と思います。
No.4
- 回答日時:
#2です。
> PHPで書かれてることが分からないようになるかなと思いまして・・・
#1さんの紹介されている mod_rewrite ではダメな理由が何かあるのでしょうか?
Google検索: php 拡張子 mod_rewrite
http://www.google.co.jp/search?q=php+%E6%8B%A1%E …
mod_rewriteは .htaccess で指定できるので、質問者さんの環境で実現可能だと思います。
No.3
- 回答日時:
.htaccess でしたいなら これでいいんじゃないの?
RewriteEngine on
#ファイル又はディレクトリがある場合は無効にする
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#○○○.jp/hogehoge で動かす場合
RewriteBase /hogehoge
#来るものはindexに飛ばす
RewriteRule !.(js|ico|gif|jpg|png|css)$ index.php
No.2
- 回答日時:
希望する動作が今ひとつ掴めませんが、
http://www.***.com/index
は
http://www.***.com/index/
と等価なので、/index/index.php にファイルを置けばいいのでは…。
/index.php にファイルを置かなければ、404 NotFound になります。
この回答への補足
例えば
http://www.***.com/index?aaa=1&bbb=2 ←動作する
http://www.***.com/index.php?aaa=1&bbb=2 ←動作しない
にするとPHPで書かれてることが分からないようになるかなと思いまして・・・
No.1
- 回答日時:
>> 「index.php」は動作させないようにすることは可能でしょうか?
いろいろな方法が考えられますが、
案1.不要なファイル(今回はindex.php)を削除する。もっとも確実でサーバーにも負荷にならない方法です。
案2..htaxxessで制限する
<Files ~ "\.php$">
deny from all
</Files>
案3.rewriteでエラーページに誘導する
など
この回答への補足
mpxさん、説明不足ですみませんでした。
index.phpにはphpプログラムを記述しています。
ブラウザのアドレスで
http://www.***.com/index にアクセスでPHPを動作させる。
http://www.***.com/index.php にアクセスはページが無いみたいに
出来ないのかなぁと思いまして・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- WordPress(ワードプレス) httpからhttpsへのリダイレクト設定について 2 2022/04/17 09:49
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- HTML・CSS インクルードした要素がヘッダーにかぶってしまう 3 2022/09/13 17:35
- Windows 10 指定したファイルを任意の範囲のディレクトリ内に上書き保存したい 1 2022/11/24 10:42
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.htaccessファイルの修正がこれ...
-
require_onceで読み込む場合、...
-
PHPでグローバルナビゲーション...
-
1つのcakePHPで複数のサイトを...
-
include時の頭の良いパス指定に...
-
onedrive にexcelファイルをア...
-
Fedoraでphp
-
【file_exists】ファイルが存在...
-
ImageCreate関数が undefined f...
-
フォントの色を変えるには?
-
別ファイルの変数を呼び出した...
-
インスタンス化に伴うメモリ消...
-
error_reporting(0);にも関わら...
-
MySQLのdatetime型の月日0を削...
-
httpdのプロセスが自動で消えな...
-
<A href ~ と一緒に値を渡すには
-
wgetの使い方
-
CygwinでNo such file
-
SSI される .inc ファイル内に ...
-
ワードプレスサイト PHP8.0.25...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
index.phpに入るには、どうすれ...
-
include時の頭の良いパス指定に...
-
require_onceで読み込む場合、...
-
サイトパスに使用しているURLを...
-
深い階層のフォルダの作成や削...
-
.htaccessファイルの修正がこれ...
-
1つのcakePHPで複数のサイトを...
-
[PHP] 任意のDNSでIPアドレスを...
-
phpでページ分けする方法を教え...
-
zendのcontrollersについて
-
PHP Linux から Windowsへの移行
-
ゼンド フレイムワークがどうや...
-
万国博覧会
-
SSLに設置したらディレクトリパ...
-
mod_rewite?でのリダイレクト...
-
PHPファイルが、そのまま見えて...
-
__FILE__をHTMLタグ内で使う
-
変数値の渡し
-
ラミネート加工について
-
歴史上の人物や宗教
おすすめ情報