I would like to know why the
AllowOverride
directive change, which seems to be very much to do with enabling.htaccess
files, solved the problem
If there are no .htaccess
files then adding AllowOverride All
in the server config is not going to do anything. As you suggest, AllowOverride
essentially enables .htaccess
files to be processed (if any exist along the file-path). Specifically, it allows directives in .htaccess
to override directives that might have been defined in the server config (in a directory context).
I thought I had read that WordPress requires a
.htaccess
file in the root directory.
You can run WordPress without a .htaccess
file. However, to use “pretty permalinks” (ie. without /index.php
being present in the URL) you do need a .htaccess
file (on Apache or LiteSpeed servers).
Although, having said that, everything you can do in .htaccess
can be done in the main server config (and much more), so you don’t strictly need a .htaccess
file at all.