ホームページ  >  に質問  >  本文

カスタム .htaccess ファイルを使用する仮想ホストでのエラー 404

<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>
P粉729198207P粉729198207434日前683

全員に返信(2)返信します

  • P粉151720173

    P粉1517201732023-09-06 08:47:09

    コード内の REQUEST_FILENAME では、書き換えを実行するために php 拡張子を持つファイルが必要です。

    ###これを試して:### リーリー

    返事
    0
  • P粉009828788

    P粉0098287882023-09-06 00:02:49

    これが完全な構成である場合、.htaccess ファイルは処理されません。

    特定のディレクトリの .htaccess オーバーライドが有効になっていません。 (つまり、.htaccess ファイルの解析が有効になっていません。) デフォルトでは、.htaccess オーバーライドは無効になっています。

    しかし、ファイル システムのこの領域へのアクセスも有効にしなかったのですか?サーバー構成の他の場所でこれを実行しましたか? !

    コンテナ内に次のような関連する セクションが必要です:

    リーリー

    必要に応じて、.htaccess オーバーライドをさらに制限できます (以下の参照リンクを参照)

    ###参照する:###

      https://httpd.apache.org/docs/2.4 /mod/core.html#allowoverride
    • 返事
      0
  • キャンセル返事