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

Reply via email to