Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comm.software.webserver > #1357 > unrolled thread

[apache] Redirect fuer alles ausser /.well-known

Started byMarc Haber <mh+usenetspam1118@zugschl.us>
First post2020-04-23 20:16 +0200
Last post2020-04-26 12:23 +0000
Articles 10 — 5 participants

Back to article view | Back to de.comm.software.webserver


Contents

  [apache] Redirect fuer alles ausser /.well-known Marc Haber <mh+usenetspam1118@zugschl.us> - 2020-04-23 20:16 +0200
    Re: [apache] Redirect fuer alles ausser /.well-known Sven Hartge <sh-204@svenhartge.de> - 2020-04-23 20:35 +0200
      Re: [apache] Redirect fuer alles ausser /.well-known Marc Haber <mh+usenetspam1118@zugschl.us> - 2020-04-23 21:26 +0200
        Re: [apache] Redirect fuer alles ausser /.well-known "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2020-04-23 22:24 +0200
          Re: [apache] Redirect fuer alles ausser /.well-known Marc Haber <mh+usenetspam1118@zugschl.us> - 2020-04-24 07:54 +0200
            Re: [apache] Redirect fuer alles ausser /.well-known Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2020-04-24 08:23 +0000
            Re: [apache] Redirect fuer alles ausser /.well-known "Peter J. Holzer" <hjp-usenet3@hjp.at> - 2020-04-28 17:44 +0200
    Re: [apache] Redirect fuer alles ausser /.well-known Enrik Berkhan <Enrik.Berkhan@inka.de> - 2020-04-23 19:32 +0000
      Re: [apache] Redirect fuer alles ausser /.well-known Marc Haber <mh+usenetspam1118@zugschl.us> - 2020-04-26 12:08 +0200
        Re: [apache] Redirect fuer alles ausser /.well-known Enrik Berkhan <Enrik.Berkhan@inka.de> - 2020-04-26 12:23 +0000

#1357 — [apache] Redirect fuer alles ausser /.well-known

FromMarc Haber <mh+usenetspam1118@zugschl.us>
Date2020-04-23 20:16 +0200
Subject[apache] Redirect fuer alles ausser /.well-known
Message-ID<r7sm13$rlu$1@news1.tnib.de>
Hallo,

ich habe hier einen apache 2.4.38 und möchte einen site,
blog.example.org, komplett nach www.example.org/blog redirecten, und
zwar natürlich mit Ausnahme des Subdirectories .well-known für
letsencrypt.

Hier meine Konfiguration (Pfade und defensiv-geraffel entfernt)

|<VirtualHost blog.example.org:443>
|    ServerName blog.example.org:443
|    ServerAdmin webmaster@example.org
|
|    ErrorLog  error.log
|    CustomLog access.log combined
|
|    SSLEngine on
|    SSLCertificateFile    fullchain.pem
|    SSLCertificateKeyFile privkey.pem
|
|    Alias /.well-known/acme-challenge /var/lib/dehydrated/acme-challenges
|
|    <Directory /var/lib/dehydrated/acme-challenges>
|        Options None
|        AllowOverride None
|        Require all granted
|    </Directory>
|    Redirect "/.well-known/" "https://blog.example.org/.well-known/"
|    Redirect "/" "https://www.example.org/blog/"
|</VirtualHost>

Leider funktioniert das nicht wie gewollt:
|$ HEAD -S http://blog.example.org/.well-known/acme-challenge/foo
|HEAD http://blog.example.org/.well-known/acme-challenge/foo
|302 Found
|HEAD https://www.example.org/blog/.well-known/acme-challenge/foo
|404 Not Found

Das liegt wohl daran, dass das Redirect _vor_ dem Alias greift. In der
Doku für mod_alias steht, dass ein in einer Location-Direktive
stehender Alias für diese Location greift bevor rewritten wird, aber
das bekomme ich nicht hin und habe auch meine Zweifel dass das
funktionieren wird, weil ja der Redirect immer noch hintendran kommt.

    <Location "/.well-known/acme-challenge">
        Alias /var/lib/dehydrated/acme-challenges
    </Location>

anstelle des einzeiligen Aliases führt jedenfalls dazu, dass er foo,
dann foo/index.html, dann foo/index.html/index.html abruft. Der
einzeilige ALias innerhalb der Location wird schon von configcheck
abgewiesen ("Alias cannot occur in directory context").

Das Fass "Rewrite statt Redirect" möchte ich eigentlich nicht
aufmachen.

Was zu funktionieren scheint ist
|    RedirectMatch "^/[^\.]" "https://www.zugschlus.de/blog/"
anstelle des Redirect "/", aber das nimmt halt alles, was auf einem
Punkt beginnt, vom redirect aus.

Geht das auch in "schön"?

Grüße
Marc
-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | 
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

[toc] | [next] | [standalone]


#1358

FromSven Hartge <sh-204@svenhartge.de>
Date2020-04-23 20:35 +0200
Message-ID<3g8vbvmrpokv8@mids.svenhartge.de>
In reply to#1357
Marc Haber <mh+usenetspam1118@zugschl.us> wrote:

> |    Redirect "/.well-known/" "https://blog.example.org/.well-known/"
> |    Redirect "/" "https://www.example.org/blog/"

> Leider funktioniert das nicht wie gewollt:
> |$ HEAD -S http://blog.example.org/.well-known/acme-challenge/foo
> |HEAD http://blog.example.org/.well-known/acme-challenge/foo
> |302 Found
> |HEAD https://www.example.org/blog/.well-known/acme-challenge/foo
> |404 Not Found

> Das liegt wohl daran, dass das Redirect _vor_ dem Alias greift. In der
> Doku für mod_alias steht, dass ein in einer Location-Direktive
> stehender Alias für diese Location greift bevor rewritten wird, aber
> das bekomme ich nicht hin und habe auch meine Zweifel dass das
> funktionieren wird, weil ja der Redirect immer noch hintendran kommt.

Richtig. Redirect ist sehr gierig und greift sich alles. Leider gibt es
auch nichts wie "Redirect /sonstwas !" oder so, mit dem man das
überschreiben könnte.

> Das Fass "Rewrite statt Redirect" möchte ich eigentlich nicht
> aufmachen.

Ich fürchte, du musst jetzt sehr sehr stark sein, Marc.

> Was zu funktionieren scheint ist
> |    RedirectMatch "^/[^\.]" "https://www.zugschlus.de/blog/"
> anstelle des Redirect "/", aber das nimmt halt alles, was auf einem
> Punkt beginnt, vom redirect aus.

> Geht das auch in "schön"?

Leider ist das eine der Situationen, wo man aktuell um mod_rewrite und
seine Mächtigkeit nicht umhin kommt.

S!

-- 
Sigmentation fault. Core dumped.

[toc] | [prev] | [next] | [standalone]


#1359

FromMarc Haber <mh+usenetspam1118@zugschl.us>
Date2020-04-23 21:26 +0200
Message-ID<r7sq54$67n$1@news1.tnib.de>
In reply to#1358
Sven Hartge <sh-204@svenhartge.de> wrote:
>Ich fürchte, du musst jetzt sehr sehr stark sein, Marc.
>
>Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
>> Was zu funktionieren scheint ist
>> |    RedirectMatch "^/[^\.]" "https://www.zugschlus.de/blog/"
>> anstelle des Redirect "/", aber das nimmt halt alles, was auf einem
>> Punkt beginnt, vom redirect aus.
>
>> Geht das auch in "schön"?
>
>Leider ist das eine der Situationen, wo man aktuell um mod_rewrite und
>seine Mächtigkeit nicht umhin kommt.

... oder halt das RedirectMatch nimmt. Für Rewrite bin ich nicht mehr
jung genug. Oder ich finde irgendwo ein fertiges Kochrezept.

Grüße
Marc
-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | 
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

[toc] | [prev] | [next] | [standalone]


#1361

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2020-04-23 22:24 +0200
Message-ID<slrnra3uc5.7m2.hjp-usenet3@trintignant.hjp.at>
In reply to#1359
On 2020-04-23 19:26, Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
> Sven Hartge <sh-204@svenhartge.de> wrote:
>>Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
>>> Geht das auch in "schön"?
>>
>>Leider ist das eine der Situationen, wo man aktuell um mod_rewrite und
>>seine Mächtigkeit nicht umhin kommt.
>
> ... oder halt das RedirectMatch nimmt. Für Rewrite bin ich nicht mehr
> jung genug. Oder ich finde irgendwo ein fertiges Kochrezept.

Bei mir schaut das so aus:

    RewriteEngine on
    RewriteCond %{THE_REQUEST} !/.well-known/
    RewriteRule ^/(.*) https://example.com/$1 [L,R]

	hp

[toc] | [prev] | [next] | [standalone]


#1362

FromMarc Haber <mh+usenetspam1118@zugschl.us>
Date2020-04-24 07:54 +0200
Message-ID<r7tuto$25v$1@news1.tnib.de>
In reply to#1361
"Peter J. Holzer" <hjp-usenet3@hjp.at> wrote:
>On 2020-04-23 19:26, Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
>> Sven Hartge <sh-204@svenhartge.de> wrote:
>>>Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
>>>> Geht das auch in "schön"?
>>>
>>>Leider ist das eine der Situationen, wo man aktuell um mod_rewrite und
>>>seine Mächtigkeit nicht umhin kommt.
>>
>> ... oder halt das RedirectMatch nimmt. Für Rewrite bin ich nicht mehr
>> jung genug. Oder ich finde irgendwo ein fertiges Kochrezept.
>
>Bei mir schaut das so aus:
>
>    RewriteEngine on
>    RewriteCond %{THE_REQUEST} !/.well-known/
>    RewriteRule ^/(.*) https://example.com/$1 [L,R]

Und mit dieser Lösung kann ich mod_rewrite im gleichen vhost auch noch
für andere Dinge benutzen? Oder ist rewrite damit "belegt"?

Grüße
Marc
-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | 
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

[toc] | [prev] | [next] | [standalone]


#1363

FromStefan+Usenet@Froehlich.Priv.at (Stefan Froehlich)
Date2020-04-24 08:23 +0000
Message-ID<1t5ea2a14fi679fn3e8%sfroehli@Froehlich.Priv.at>
In reply to#1362
On Fri, 24 Apr 2020 07:54:00 Marc Haber wrote:
> "Peter J. Holzer" <hjp-usenet3@hjp.at> wrote:
> >    RewriteEngine on
> >    RewriteCond %{THE_REQUEST} !/.well-known/
> >    RewriteRule ^/(.*) https://example.com/$1 [L,R]
> 
> Und mit dieser Lösung kann ich mod_rewrite im gleichen vhost auch noch
> für andere Dinge benutzen? Oder ist rewrite damit "belegt"?

Im gleichen vhost geht das sowieso, da musst Du Dir allenfalls um
die Reihenfolge Gedanken machen.

Wenn Du so etwas global verwenden möchtest, bietet sich z.B.:

#v+
RewriteOptions InheritDown
#v-

...an, damit die Regeln automatisch in die einzelnen vhosts
übernommen werden.

Servus,
   Stefan

-- 
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan wird mehr als Happy machen!
(Sloganizer)

[toc] | [prev] | [next] | [standalone]


#1366

From"Peter J. Holzer" <hjp-usenet3@hjp.at>
Date2020-04-28 17:44 +0200
Message-ID<slrnragjri.h9o.hjp-usenet3@trintignant.hjp.at>
In reply to#1362
On 2020-04-24 05:54, Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
> "Peter J. Holzer" <hjp-usenet3@hjp.at> wrote:
>>On 2020-04-23 19:26, Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
>>> Für Rewrite bin ich nicht mehr jung genug. Oder ich finde irgendwo
>>> ein fertiges Kochrezept.
>>
>>Bei mir schaut das so aus:
>>
>>    RewriteEngine on
>>    RewriteCond %{THE_REQUEST} !/.well-known/
>>    RewriteRule ^/(.*) https://example.com/$1 [L,R]
>
> Und mit dieser Lösung kann ich mod_rewrite im gleichen vhost auch noch
> für andere Dinge benutzen? Oder ist rewrite damit "belegt"?

Naja, hier ist der Zweck, alles außer .well-known auf https umzuleiten
(wüsste nicht, was ich sonst zwingend "http-only" haben sollte). Aber
natürlich kann man beliebig viele RewriteRules (jeweils optional mit
RewriteConds) angegeben, die werden halt dann der Reihe nach
abgearbeitet.

        hp

[toc] | [prev] | [next] | [standalone]


#1360

FromEnrik Berkhan <Enrik.Berkhan@inka.de>
Date2020-04-23 19:32 +0000
Message-ID<r7sqh9$1i5e$1@starfleet.inka.de>
In reply to#1357
Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
> Was zu funktionieren scheint ist
> |    RedirectMatch "^/[^\.]" "https://www.zugschlus.de/blog/"
> anstelle des Redirect "/", aber das nimmt halt alles, was auf einem
> Punkt beginnt, vom redirect aus.
> 
> Geht das auch in "schön"?

Bei sowas bin ich wohl auch mal gelandet, in einer alten config habe ich
das gefunden:

   Alias "/.well-known/" "/var/www/bla.bla/.well-known/"
   RedirectMatch "^/$" https://bla.bla/
   RedirectMatch "^/([^.].*)$" https://bla.bla/$1

Dass damit andere .unterverzeichnisse auch nicht redirected werden, habe
ich wohl in Kauf genommen. Notfalls müsste man die eben reinfummeln.
Gerade noch unter der Rewrite-Schmerzgrenze, würde ich sagen.

Viele Grüße,
Enrik

[toc] | [prev] | [next] | [standalone]


#1364

FromMarc Haber <mh+usenetspam1118@zugschl.us>
Date2020-04-26 12:08 +0200
Message-ID<r83mj0$3j9$1@news1.tnib.de>
In reply to#1360
Enrik Berkhan <Enrik.Berkhan@inka.de> wrote:
>Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
>> Was zu funktionieren scheint ist
>> |    RedirectMatch "^/[^\.]" "https://www.example.org/blog/"
>> anstelle des Redirect "/", aber das nimmt halt alles, was auf einem
>> Punkt beginnt, vom redirect aus.
>> 
>> Geht das auch in "schön"?
>
>Bei sowas bin ich wohl auch mal gelandet, in einer alten config habe ich
>das gefunden:
>
>   Alias "/.well-known/" "/var/www/bla.bla/.well-known/"
>   RedirectMatch "^/$" https://bla.bla/
>   RedirectMatch "^/([^.].*)$" https://bla.bla/$1
>
>Dass damit andere .unterverzeichnisse auch nicht redirected werden, habe
>ich wohl in Kauf genommen. Notfalls müsste man die eben reinfummeln.
>Gerade noch unter der Rewrite-Schmerzgrenze, würde ich sagen.

Manchmal hilft es, alte Literatur nochmal durchzulesen. Ich bin dann
bei den zero-length negativ lookahead assertions hängengeblieben.

|RedirectMatch "^/(?!\.well-known/acme-challenge/).*" "https://www.example.org/blog/

tut das, was ich mir wünsche. Ich kann mir vorstellen, mit diesem
Konstrukt könnte man auch gecapturte URL-Redirects wie bei Dir oben
hinbekommen. Aber das steht mir aktuell nicht auf dem Pflichtenheft.

Für den Trivialfall eines redirects von example.org nach
www.example.org o.ä, braucht man übrigens im Fall von Letsencrypt
nichtmal das, wenn man für alle Sites dasselbe Zertifikat verwendet.
Im ACME-RFC steht ausdrücklich drin, dass der ACME-Server bei der
Web-Challenge Redirects folgen muss¹, man braucht also in example.org
überhaupt keinen ACME-Alias o.ä. sondern nur den "stumpfen" Redirect,
denn wenn example.org/.well-known/acme-challenge/foo auf
www.example.org/.well-known/acme-challenge redirected, dann reicht das
für eine erfolgreiche ACME-Challenge.

This being said: Use DNS-01 wherever possible. Sollte die
Verifizierung der Wahl sein, out of band und flexibel.

Grüße
Marc
-- 
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | 
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

[toc] | [prev] | [next] | [standalone]


#1365

FromEnrik Berkhan <Enrik.Berkhan@inka.de>
Date2020-04-26 12:23 +0000
Message-ID<r83uf5$91d$1@starfleet.inka.de>
In reply to#1364
Marc Haber <mh+usenetspam1118@zugschl.us> wrote:
> Manchmal hilft es, alte Literatur nochmal durchzulesen. Ich bin dann
> bei den zero-length negativ lookahead assertions hängengeblieben.
> 
> |RedirectMatch "^/(?!\.well-known/acme-challenge/).*" "https://www.example.org/blog/
> 
> tut das, was ich mir wünsche. Ich kann mir vorstellen, mit diesem
> Konstrukt könnte man auch gecapturte URL-Redirects wie bei Dir oben
> hinbekommen. Aber das steht mir aktuell nicht auf dem Pflichtenheft.

Ja, das sieht auch nach einer hübschen Lösung aus.

Viele Grüße,
Enrik

[toc] | [prev] | [standalone]


Back to top | Article view | de.comm.software.webserver


csiph-web