How to set Apache virtual host correctly for Drupal 8
Mia Lopez
I installed the Drupal website in this path:
/var/www/html/Below I show the virtual host configuration file testdrupal.localhost:
<Directory /var/www/html/testdrupal.localhost> Require all granted
</Directory>
<VirtualHost *:80> ServerName testdrupal.localhost ServerAlias ServerAdmin webmaster@localhost DocumentRoot /var/www/html/ ErrorLog /var/www/html/ CustomLog /var/www/html/ combined
</VirtualHost>When I access the url I correctly see the start page of Drupal, but when I click on the login link, I get a 404 error.
The URL shown on the browser's address bar is:
I also verified that:
the URL WORKS
the URL DOESN'T WORKS
2 Answers
Might a bit old and you probably fixed this, but i'll post the answer so that it might help others.
<VirtualHost *:80> DocumentRoot /var/www/html/my_project/docroot ServerName ${alias} ServerAlias ${alias} <Directory /var/www/html/my_project/docroot> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>${alias} = is the name you wrote in the hosts file, next to the IP address of localhost
I was running into the same problem. After days of trial and error I found the solution.
I had to change the location of the index.php in the .htaccess file as it was mentioned in Drupal's advice
Old setting:
# Pass all requests not referring directly to files in the filesystem to # index.php. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^ index.php [L]New setting:
# Pass all requests not referring directly to files in the filesystem to # index.php. RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^ /drupal/index.php [L]