https://*.jp/test/(testは存在しないディレクトリ)等のURLを入力された場合でも、
https://.jp/index.phpを表示させるようにする設定は可能なのでしょうか?
おそらく、上記設定のままだと
https://.jp/test/index.phpとなってしまう認識です。
https://.jp/test/ → https://.jp/test/index.phpとリライトはされません。
下記にすべてのリライトを解説してみたので参考にしてみてください。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
リライト条件:リクエストURLのファイル名(-f)かつ、ディレクトリ(-d)が存在しない場合
RewriteCond $1 !^(index.php|images|scripts|)
リライト条件:$1というリクエストURLが「index.php or images or scripts」ではない場合
※上記は、条件がおかしいので常にTRUEになります
RewriteRule ^(.*)$ /index.php/$1 [L]
上記リライト条件がTRUE
(AND結合で上から順番に処理)の場合、すべてのリクエストURLを「/index.php/リクエストURL」にリライトして終了
/test/ がリクエストURLの場合:
http://ドメイン/test/ → http://ドメイン/index.php/test/
実際に「/test」ディレクトリが存在する場合は、リライト条件(RewriteCond %{REQUEST_FILENAME} !-d
)がFALSE
になりリライトは行われません。
最終的には下記でいかがでしょうか。RewriteCond $1 !^(index\.php|images|scripts|)
これを「リクエストURLがindex.php,images,scriptsではない場合」と解釈すると下記のようになります。
apache
1RewriteEngine on
2RewriteCond %{REQUEST_FILENAME} !-f
3RewriteCond %{REQUEST_FILENAME} !-d
4RewriteCond %{REQUEST_URI} !^/(index\.php|images|scripts)
5RewriteRule ^(.*)$ /index.php/$1 [L]
※http://ドメイン/index.php/xxx
などのURLではアクセスできなくなります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/07 04:40