こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

どんなディレクトリでもindex.phpへ飛ばす

http://ドメイン/abc/
http://ドメイン/eee123/
http://ドメイン/xyz/
このようにドメイン直下でどんなディレクトリが指定されても
index.phpに飛ばして処理できるようにしたいのですが、
一般的にはどのような方法が使われているのでしょうか。

とりあえず下のようなリダイレクトをやってみたのですが、
index.php用のcssが読み込めなくなってしまいます。
RewriteEngine on
RewriteRule ^(.*)$ index.php [L]
(おそらくcssもリダイレクトしてしまっている)

レンタルサーバなのでapache設定は.htaccessには
書き込めますが、httpd.confには書き込めません。

ちなみに目的は指定されたディレクトリ名で
データベースを検索するなどします。

投稿日時 - 2017-05-31 23:59:07

QNo.9335779

すぐに回答ほしいです

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

>どんなディレクトリでもindex.phpへ飛ばす
「index.phpへ飛ばす」は不適切な表現です。
「index.phpを省略しても読み込む」が良いでしょう。

>レンタルサーバなのでapache設定は.htaccessには書き込めますが、httpd.confには書き込めません。
それも認識の誤りです。
apacheのinsex.*を省略する設定はmod_dir.confで優先順位を決めています。
初期値の順位はindex.html、index.cgi、index.pl、index.php、index.xhtml、index.htmのように設定されています。
従って、目的のディレクトリにindex.html、index.cgi、index.plが無ければ自動的にindex.phpを読み込むはずです。

投稿日時 - 2017-06-01 10:01:11

補足

回答ありがとうございます。
今ちょっとやってみましたが、何もディレクトリを指定しない場合は
index.phpが読み込まれますが、指定するとnot foundになります。

>http://ドメイン/abc/
>http://ドメイン/eee123/
>http://ドメイン/xyz/
>このようにドメイン直下でどんなディレクトリが指定されても
>index.phpに飛ばして処理できるようにしたい
>ちなみに目的は指定されたディレクトリ名で
>データベースを検索するなどします。
目的はこれですのでこれからまた調べてみます。

投稿日時 - 2017-06-02 00:24:22

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>今ちょっとやってみましたが、何もディレクトリを指定しない場合はindex.phpが読み込まれますが、指定するとnot foundになります。
ブラウザのキャッシュが表示されている可能性があります。
キャッシュのクリアでも同じでしたら目的のディレクトリのファイル名を再確認してみることをお薦めします。
念のために各ディレクトリにあるindex.phpも含めたリクエストで.phpファイルが正常に動作していることを再確認してください。
それでもだめならWebサーバーの管理者に問い合わせないと原因が分かりません。

投稿日時 - 2017-06-02 15:32:23

ANo.2

回答No.1の一部訂正です。
apacheのinsex.*を省略する設定はmod_dir.confで優先順位を決めています。
         ↓
apacheのinsex.*を省略する設定はdir.confで優先順位を決めています。

尚、私のテスト用apache2サーバーではdir.confが/etc/apache2/mods-enabled/にありますのでhttpd.confと同様に修正できないでしょう。

投稿日時 - 2017-06-01 10:31:56