現象:トップページからのリンクで固定ページに飛ぶ時、自動的にindex.phpが付く。
多くのインターネットにその方法があるが、自分では出来なかった。蛇足だが私の管理しているWEBサーバーは管理者(root)権限が使用できる。このような時は .htaccess を使用すべきでない。管理者権限がない場合は仕方なく使用せざるを得ないが。https://httpd.apache.org/docs/current/ja/howto/htaccess.html によると
一般的に、サーバの主設定ファイルにアクセスできない場合を除いて、 .htaccess
ファイルの使用は極力避けてください。 世の中には、例えば、ユーザ認証は常に .htaccess
ファイルで 行なわなければならない、という誤解が広まっていますが、まったくそんなことは ありません。ユーザ認証の設定はサーバ主設定ファイルに書くことができ、 実際、その方がより良い設定方法です。.htaccess
ファイルはコンテンツ提供者がディレクトリ毎の 設定を行ないたいけれど、サーバシステムの root アクセス権限を持っていない という場合にのみ使うべきものです。(又、その理由もここに書いてあります)
という訳で、conf.d にある virtualhost-le-ssl.conf を変更(lets encryptの設定時に作られた)
<Directory /webdata/public/inpac>
AllowOverride None
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
</Directory>
青字は元々の設定、緑字を追記(AllowOverride None で .htaccess 使えなくしている。又 RewriteBase がある時は <derectory ….> の中に入れないと RewriteBase: only valid in per-directory config files と怒られる)
でもって、apache を再起動してチェック。
!!!!アレー まだ index.php が入っている。なんでー。これで散々悩んだが、問題は簡単な事だった。パーリンクの設定で(ダッシュボート → 設定 → パーマリンク設定)カスタム構造を選んでいるが、その中の設定で /index.php/%year%/%monthnum%/%day%/%postname%/ と最初に index.php が入っていたので、これを取り/%year%/%monthnum%/%day%/%postname%/ として、変更を保存したら、index.php がやっと表示されなくなった。