Hello, I have to take over an internal Web server that has been configured by a colleague who is no longer there. Our developers team asks me to convert applications URLs from an *Alias* to a *Virtualhosts* (subdomain naming) system. For instance:
https://srv-intra.mydomain.fr/basecolldev should become https://basecolldev.mydomain.fr My environment specifications: - Linux OpenSUSE Leap 15.3 - Server version: Apache/2.4.51 (Linux/SUSE) - PHP 7.4.6 (cli) ( NTS ) *Issue description: *I can connect to https://basecolldev.mydomain.fr despite some 404 errors showing in access_log file (see at the end of the post). I have then a 404 error page when clicking the *login* button that redirects to https://basecolldev.mydomain.fr/login. The login page is found and displayed properly when I manually modify the URL to https://basecolldev.mydomain.fr/index.php/login. This means that /index.php is not required for home page connection but is for browsing the website. I need to permanently prevent the /index.php suffix to show up in URL. I describe below what I have configured so far and what remains unfunctionnal. I have first created a new vhost file /etc/apache2/vhost.d/basecolldev-ssl.conf : <VirtualHost basecolldev.mydomain.fr:443> > DocumentRoot "/var/www/BaseCollDev/public" > ServerName basecolldev.mydomain.fr > ErrorLog /var/log/apache2/basecolldev-error_log > TransferLog /var/log/apache2/basecolldev-access_log > LogLevel alert rewrite:trace8 > <Directory /var/www/BaseCollDev/public> > #Order allow,deny > #allow from all > #AllowOverride All > Require all granted > Options -Indexes -Includes -ExecCGI -FollowSymlinks > </Directory> > </VirtualHost> I have then commented the lines related to the application Directory tag in file /etc/apache2/default-server.conf : DocumentRoot "/var/www" > <Directory "/var/www"> > Options FollowSymLinks > AllowOverride None > <IfModule !mod_access_compat.c> > Require all granted > </IfModule> > <IfModule mod_access_compat.c> > Order allow,deny > Allow from all > </IfModule> > </Directory> > Alias /icons/ "/usr/share/apache2/icons/" > Alias /phpmyadmin "/srv/www/htdocs/phpMyAdmin" > <Directory "/usr/share/apache2/icons"> > Options Indexes MultiViews > AllowOverride None > <IfModule !mod_access_compat.c> > Require all granted > </IfModule> > <IfModule mod_access_compat.c> > Order allow,deny > Allow from all > </IfModule> > </Directory> > > #<Directory "/var/www/BaseCollDev/public"> > # AllowOverride All > # Require all granted > #</Directory> > ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/" > <Directory "/srv/www/cgi-bin"> > AllowOverride None > Options +ExecCGI -Includes > <IfModule !mod_access_compat.c> > Require all granted > </IfModule> > <IfModule mod_access_compat.c> > Order allow,deny > Allow from all > </IfModule> > </Directory> > <IfModule mod_userdir.c> > UserDir public_html > Include /etc/apache2/mod_userdir.conf > </IfModule> > IncludeOptional /etc/apache2/conf.d/*.conf > IncludeOptional /etc/apache2/conf.d/apache2-manual?conf ---- Extract from /var/log/apache2/basecolldev-access_log file relating to a connection to the home page: 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET / HTTP/1.1" 200 54206 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET > /build/runtime.d94b3b43.js HTTP/1.1" 200 1505 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/app.13d64c6c.js > HTTP/1.1" 200 236 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/2.9935185b.css > HTTP/1.1" 200 64639 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/app.6cefaab5.css > HTTP/1.1" 200 163752 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /build/2.28b18d57.js > HTTP/1.1" 200 261268 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET > /build/images/logoEdVBlanc.png HTTP/1.1" 200 6579 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET /_wdt/b07606 HTTP/1.1" > 404 1280 > 10.9.4.140 - - [03/Jun/2022:11:02:31 +0200] "GET > /build/fonts/fa-solid-900.e8a427e1.woff2 HTTP/1.1" 200 78196 > 10.9.4.140 - - [03/Jun/2022:11:02:32 +0200] "GET /favicon.ico HTTP/1.1" > 404 1280 > 10.9.4.140 - - [03/Jun/2022:11:02:32 +0200] "GET /_wdt/b07606 HTTP/1.1" > 404 1280 > 10.9.4.140 - - [03/Jun/2022:11:02:33 +0200] "GET /_wdt/b07606 HTTP/1.1" > 404 1280 > 10.9.4.140 - - [03/Jun/2022:11:02:34 +0200] "GET /_wdt/b07606 HTTP/1.1" > 404 1280 > 10.9.4.140 - - [03/Jun/2022:11:02:35 +0200] "GET /_wdt/b07606 HTTP/1.1" > 404 1280 Extract from /var/log/apache2/basecolldev-access_log file relating to a connection to the login page: 10.9.4.140 - - [03/Jun/2022:11:03:47 +0200] "GET /login HTTP/1.1" 404 1280 I see no logs in /var/log/apache2/basecolldev-error_log file. I enclose .htaccess files contents if necessary. File /var/www/.htaccess : # BEGIN WordPress > <IfModule mod_rewrite.c> > RewriteEngine On > RewriteBase / > RewriteRule ^index\.php$ - [L] > RewriteCond %{REQUEST_FILENAME} !-f > RewriteCond %{REQUEST_FILENAME} !-d > RewriteRule . /index.php [L] > </IfModule> > # END WordPress File /var/www/BaseCollDev/public/.htaccess : DirectoryIndex index.php > <IfModule mod_negotiation.c> > Options -MultiViews > </IfModule> > <IfModule mod_rewrite.c> > RewriteEngine On > RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ > RewriteRule .* - [E=BASE:%1] > RewriteCond %{HTTP:Authorization} .+ > RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] > RewriteCond %{ENV:REDIRECT_STATUS} ="" > RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] > RewriteCond %{REQUEST_FILENAME} !-f > RewriteRule ^ %{ENV:BASE}/index.php [L] > </IfModule> > <IfModule !mod_rewrite.c> > <IfModule mod_alias.c> > RedirectMatch 307 ^/$ /index.php/ > </IfModule> > </IfModule> Please note this case has been described here <https://stackoverflow.com/questions/72487821/apache-website-conversion-from-alias-to-virtualhost> but has not received any help so far. -- Thomas WILLIAMSON • Technicien Systèmes et réseaux *Tél.* 05 49 61 25 25 (*interne *: 2235) *Eaux de Vienne - Siveer* • 55 rue de Bonneuil-Matours • 86000 Poitiers