.htaccess が PHP プロジェクトで有効にならない

.htaccess が PHP プロジェクトで有効にならない

私は Ubuntu 20.04 を実行しており、現在 PHP を使用して API を作成しています。404.htaccessページを index.php にリダイレクトするファイルを追加しました。Apache の設定に問題があると思われるため、askubuntu でこの質問をしています。000-defaultファイルを開いて/etc/apace2/sites-available、次の内容を変更しました。

<Directory /var/www/html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

また、次のように変更しましapache2.confた。/etc/apache2/apache2.conf

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<Directory /usr/share>
    AllowOverride All
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

これは私の .htaccess ファイルの内容です:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]

</IfModule>

「これはエラーになるはずです」のようなことを書こうとしたのですが、ブラウザをリロードすると予想通り 500 エラーは表示されず、400 エラーが表示されるので、ファイルが.htaccessヒットしていないことがわかります。

Apacheやシステムファイルを変更した後、実行しました

sudo systemctl restart apache2しかしダメでした。

この時点で他に何を変更すればよいかわかりません。どんな助けでも大歓迎です、ありがとうございます。

答え1

問題は .htaccess が無視されていることではなく、mod_rewrite が有効になっていないことにあると思われます。Apache2sudo a2enmod rewriteを再起動してみてください。

関連情報