Redirect /znuny/customer.pl zu /

Allgemein Fragen, deutsche News, Ankündigungen & Events zum OTRS
Post Reply
cyberduck
Znuny newbie
Posts: 2
Joined: 05 Jan 2024, 21:59
Znuny Version: 7.0.14
Real Name: Thomas Wildgruber

Redirect /znuny/customer.pl zu /

Post by cyberduck »

Servus Community,

ich habe Znuny zu Testzwecken auf einem Debian 12 System mit Apache installiert. Funktioniert auch soweit, nur die Konfiguration mit dem Vhost im Apache Conf-Verzeichnis ist für mich etwas exotisch. Die automatische Weiterleitung auf die HTTPS Seite habe ich jetzt auch hinbekommen, nur wenn ich die URL ohne nachfolgenden Verzeichnis-Pfad eingebe, wird mir immer noch die Standard Apache Seite angezeigt. Ich muss also entweder /znuny/index.pl oder /znuny/customer.pl eingeben. Ich habe die Umleitung auf HTTPS abgefangen, indem ich den folgenden Konfigurationsblock ganz am Ende der Znuny-Apache-Konfigurationsdatei hinzugefügt habe:

Code: Select all

<IfModule mod_rewrite.c>
  <IfModule mod_ssl.c>
    <Location /znuny>
      RewriteEngine on
      RewriteCond %{HTTPS} !^on$ [NC]
      RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}  [L]
    </Location>
  </IfModule>
  
Und folgender HTTPS Vhost-Datei im /etc/apache2/sites-available Verzeichnis:

Code: Select all

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin your_email@example.com
                ServerName znuny.domain.de

                DocumentRoot /opt/znuny/var/httpd/htdocs/

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile      /etc/ssl/znuny/certificate.crt
                SSLCertificateKeyFile /etc/ssl/znuny/public.key

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

        </VirtualHost>
</IfModule>
Wie bekomme ich es jetzt hin, dass man bei Eingabe der URL ohne weitere Pfadangabe (also nur znuny.domain.de) auf die Seite /znuny/customer.pl geleitet wird? Dem Support-Mitarbeiter kann man die Angabe des Pfades /znuny/index.pl zumuten, aber dem Kunden möchte ich das ersparen.

Ich muss diesen Prototypen demnächst meinen Vorgesetzten vorstellen und würde mir diese Frage gerne von vornherein ersparen. Es wird im weiteren Verlauf noch schwierig genug werden.

Vielen Dank CD
zzz
Znuny superhero
Posts: 887
Joined: 15 Dec 2016, 15:13
Znuny Version: All
Real Name: Emin
Company: Efflux GmbH
Contact:

Re: Redirect /znuny/customer.pl zu /

Post by zzz »

Hallo,

ich hätte die Config anders aufgebaut, aber wenn es so schon funktioniert, würde ich nicht viel ändern.

Versuch, diesen Block in Deine VirtualHost-Config zu packen:

Code: Select all

        Redirect permanent / https://znuny.domain.de/znuny/customer.pl
Wenn auf dem Server nichts anderes läuft, würde ich die HTTPS-Weiterleitung anpassen, damit sie immer weiterleitet und nicht nur, wenn /znuny vorkommt.

Code: Select all

    <VirtualHost *:80>
        ServerName znuny.domain.de

        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </VirtualHost>
Viele Grüße
Emin
Professional OTRS, Znuny & OTOBO services: efflux.de | efflux.de/en/

Free and premium add-ons: German | English
cyberduck
Znuny newbie
Posts: 2
Joined: 05 Jan 2024, 21:59
Znuny Version: 7.0.14
Real Name: Thomas Wildgruber

Re: Redirect /znuny/customer.pl zu /

Post by cyberduck »

Servus,

wo müsste ich deine Redirect Regel einfügen? So eingefügt wie hier läuft der Redirect ohne weitere Pfadangabe in einer Endlosschleife:

Code: Select all

<IfModule mod_rewrite.c>
  RewriteEngine on
  Redirect permanent / https://znuny.domain.de/znuny/customer.pl
  RewriteCond %{REQUEST_URI} ^/$

  <IfModule mod_ssl.c>
#    <Location /znuny>
      RewriteEngine on
      RewriteCond %{HTTPS} !^on$ [NC]
      RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}  [L]
#    </Location>
  </IfModule>
Ich habe auch einige Varianten ausprobiert, aber es ist immer dasselbe. Die Geschichte ohne den oberen Teil (und ohne die Einschränkung der Location) funktioniert, aber jetzt, wenn man die URL ohne Pfad angibt, wird man auf /znuny/index.pl weitergeleitet.

Code: Select all

<IfModule mod_rewrite.c>
#  RewriteEngine on
#  Redirect permanent / https://znuny.domain.de/znuny/customer.pl
#  RewriteCond %{REQUEST_URI} ^/$

  <IfModule mod_ssl.c>
#    <Location /znuny>
      RewriteEngine on
      RewriteCond %{HTTPS} !^on$ [NC]
      RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}  [L]
#    </Location>
  </IfModule>
Irgendwo muss es einen Redirect geben, der auf /znuny/index.pl weiterleitet. In der Apache-Konfigurationsdatei steht aber nichts davon, auch nicht im Vhost für die SSL-Grundkonfiguration (Zertifikate etc.). Kann da im Code der Anwendung selbst noch was stehen?

Frage 1: Siehst du den Fehler?
Frage 2: Wie hättest du denn das Setup grundsätzlich aufgebaut?

Thx & Bye CD
zzz
Znuny superhero
Posts: 887
Joined: 15 Dec 2016, 15:13
Znuny Version: All
Real Name: Emin
Company: Efflux GmbH
Contact:

Re: Redirect /znuny/customer.pl zu /

Post by zzz »

Zu Frage 1: Den Redirect hätte ich in den VirtualHost für 443 (HTTPS) gepackt.

Zu Frage 2: Ich würde keine zweite Konfiguration für HTTPS machen, sondern die bestehende Znuny-Konfiguration erweitern, damit es für nur eine Konfiguration für Znuny und ggf. eine weitere für das Weiterleiten von HTTP auf HTTPS gibt. Dann kann man auch mit „ErrorDocument“ für die Codes 403/404 arbeiten und auf customer.pl weiterleiten.

Bei Konfigurationen fürs Weiterleiten aber immer darauf achten, dass der Browser nichts gecachet hat. Sonst wundert man sich, dass die neuen Einstellungen nicht greifen :D

— Emin
Professional OTRS, Znuny & OTOBO services: efflux.de | efflux.de/en/

Free and premium add-ons: German | English
Post Reply