カスタム .htaccess ファイルを使用する仮想ホストでのエラー 404
P粉729198207
2023-09-05 10:28:49
<p>ローカル Linux サーバーに apache2 をインストールしました。これには <code>pcts.local</code> という名前の仮想ホストがあり、そのルート ディレクトリは <code>/var/www/repos/pcts/</code> です。 pcts.local のルート内には .htaccess ファイルがあり、次のように指定されていない場合は .php を含めるように URL を書き換えようとします。
<pre class="brush:php;toolbar:false;">http://pcts.local/ -> http://pcts.local/index.php
http://pcts.local/contact -> http://pcts.local/contact.php</pre>
<p>問題は、<code>http://pcts.local/contact</code> ではエラー 404 が発生しますが、<code>http://pcts.local/contact.php</code> が出力されることです。 200のうち。 </p>
<h3>仮想ホスト構成: </h3>
<pre class="brush:php;toolbar:false;"><VirtualHost *:80>
サーバー名 pcts.local
ServerAdmin webmaster@localhost
ドキュメントルート /var/www/repos/pcts
エラーログ ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log の結合
</VirtualHost></pre>
<h3>.htaccess ファイルは <code>/var/www/repos/pcts/</code></h3> にあります。
<pre class="brush:php;toolbar:false;">RewriteEngine オン
リライトベース/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(. )$ $1.php [NC,L]</pre>
<p>よろしくお願いいたします。 </p>
コード内の REQUEST_FILENAME では、書き換えを実行するために php 拡張子を持つファイルが必要です。
###これを試して:### リーリーこれが完全な構成である場合、
.htaccess
ファイルは処理されません。特定のディレクトリの
.htaccess
オーバーライドが有効になっていません。 (つまり、.htaccess
ファイルの解析が有効になっていません。) デフォルトでは、.htaccess
オーバーライドは無効になっています。しかし、ファイル システムのこの領域へのアクセスも有効にしなかったのですか?サーバー構成の他の場所でこれを実行しましたか? !
リーリー
コンテナ内に次のような関連する
セクションが必要です:必要に応じて、
###参照する:###.htaccess
オーバーライドをさらに制限できます (以下の参照リンクを参照)https://httpd.apache.org/docs/2.4 /mod/core.html#allowoverride-