私は 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
を再起動してみてください。