I'm trying to enable clean URL's on my Drupal web application. I have visited several public questions such as this one, but to no avail. My sincerest apologies if this is thus a repost.
Some (relevant) context:
I'm setting up a LAMP stack on the VM using the following:
yum -y install httpd
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
./mariadb_repo_setup
yum -y install mariadb-server
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php74
yum -y install php php-mysql
I'm storing the extracted contents of Drupal (index.php, update.php,
core, sites ...) under /var/www/drupal/
. I have given Apache
recursive ownership of that folder as to not create a hassle having to set up permissions. It's not a production project anyway.
In the /etc/httpd/conf/httpd.conf
file, I have only touched the
DocumentRoot, which I set to DocumentRoot "/var/www/drupal"
. I do not want to use .htaccess.
When I run httpd -M | grep rewrite
, I receive the output rewrite_module (shared). When I run phpinfo();
on a test page, mod_rewrite is present among the loaded modules.
Running the application, everything goes fine, and the following output is produced:
I'm aware of the other two warnings, but those are a worry for another day. When I continue despite the warnings, Apache loads index.php just fine:
However, the moment I click any button, this happens:
Screenshot of yet another problem
I suspect this is a consequence of the clean URL's not being enabled. However, as far as I know, all necessary modules have been installed.
/etc/httpd/conf/httpd.conf
, trying everything that's suggested here./etc/httpd/conf/httpd.conf
, setting every AllowOverride option to All.Help would be greatly appreciated. Many thanks in advance. If you require any more information, I will respond as soon as possible.
Hey guys. The issue has been solved.
Somehow, it suddenly works. I am now able to navigate the website without a Not Found error popping up.
I retried a method that didn't work before, but now it does. There was no change in any other variables. I edited /etc/httpd/conf/httpd.conf
. Besides already having changed DocumentRoot to /var/www/drupal
, I also added another piece of configuration right under that:
<Directory "/var/www/drupal">
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
I obtained this information from here.
The CLEAN URLS warning is still present though:
But there seems to be no problem when continuing despite the warnings. In fact, in the application itself, navigating to the errors/warnings section, the CLEAN URLS warning isn't even there!