PHPの拡張子を隠蔽(拡張子自体を非表示)にしたいのですが、いくつか分からない点があります。WebサーバーはApacheを使用しています。
現在のディレクトリ構成は、大元となるルートフォルダ(PROJECT1)直下に直接、複数のphpファイルがあり、同じPROJECT1フォルダ直下にcssフォルダ、imageフォルダがあります。
PROJECT1フォルダー直下に.htaccessファイルを作成しました。
拡張子を省略する設定を.htaccessでできたのですが、それだと「ソースの表示」で
<a href="input.php"> のようにリンク部分で拡張子が表示されてしまうので、.php
を .html でも動作するように設定してphpファイルの拡張子を.htmlにしました。
以下、httpd.confの設定です。
AddHandler application/x-httpd-php .php .html
その後、html拡張子を省略する設定を.htaccessで行いました。
<FilesMatch "^$"> ForceType application/x-httpd-php </FilesMatch> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^(.*)$ $1.html
「 localhost/PROJECT1/index 」または「 localhost/PROJECT1 」
と拡張子を省略しても正しく表示されます。(index.htmlがサイトのホーム)
ここまではいいのですが... 前置きが長くなりました。
質問(1)
<a href="input.html"> のようなリンクをクリックし、別のhtmlファイルにアクセスすると、URLが
「 localhost/PROJECT1/input.html 」のように拡張子が表示されてしまいます。
「 localhost/PROJECT1/input 」または「 localhost/PROJECT1/input/ 」のように
リンクしても拡張子を非表示にするにはどうすれば良いでしょうか?
質問(2)
また、URLの localhost の部分は実際はドメイン名になると思うのですが、
「 http://localhost/PROJECT1/index.html 」を 本番環境で
「http://○○.com」のみでアクセス可能にするにはどうすれば良いでしょうか?
つまり、本番環境ではルートフォルダ(PROJECT1)を非表示にしたいです。
また全てのhtmlファイルに対してもルートフォルダを省略可能にしたいです。
「 http://○○.com/input/ 」のようなイメージです。
以上が質問になります。読んでいただきありがとうございます。
ご回答いただければ幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/06 14:12
2017/11/07 16:03
2017/11/08 15:46