Ich habe das folgende Setup auf einem meiner vhosts:
...<VirtualHost *:80>
ServerName cloud.domain.de
ServerAdmin [email protected]
ServerSignature Off
Alias "/.well-known/acme-challenge" "/var/www/domain.de/vh-www/htdocs/public/.well-known/acme-challenge"
<Directory "/var/www/domain.de/vh-www/htdocs/public/.well-known/acme-challenge">
Require all granted
ForceType 'text/plain'
</Directory>
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %(REQUEST_URI) !/\.well\-known/acme\-challenge/?.*
RewriteCond %{HTTPS} off
# RewriteRule ^\.well-known/acme-challenge/([A-Za-z0-9-]+)/?$ - [L]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</ifmodule>...
Was ich erreichen möchte, ist, dass mod_rewrite die URL nicht neu schreibt, wenn auf die URL http://cloud.domain.de/.well-known/acme-challenge/
zugegriffen wird.
Ich habe bereits verschiedene Ansätze ausprobiert, einer davon ist die oben auskommentierte RewriteRule, aber nichts scheint zu funktionieren: Der Server schreibt sie jedes Mal in https um.
Wenn ich das Umschreiben zu Testzwecken deaktiviere, kann ich problemlos auf die Alias-URL zugreifen ...
Wie erreiche ich, dass die spezifische URL nicht neu geschrieben wird?
mod-rewrite
apache-2.4
mod-alias
FleBeling
quelle
quelle
http://www.server-plant.de/.well-known/acme-challenge/
Es wird noch umgeschrieben. (Ich habe die gleichen Rewrrite-Regeln und -Bedingungen für meine www-Subdomain angewendet, daher ist es genau das gleiche wie für die Cloud-Subdomain.)RewriteCond %{HTTPS} off
wird nicht benötigt/
? Also würde es index.html nicht fangen und so weiter?start with /.well-known/acme-challenge/
/.well-known/acme-challenge/anything
RewriteOptions InheritDown
seit Apache 2.4.8 an alle virtuellen Hosts vererbt werden.RewriteEngine On
muss noch in jeder Konfiguration des virtuellen Hosts vorhanden sein.@mark Richtige Version der "kürzeren und robusteren" Variante:
quelle
IMHO kürzer und robuster:
Möglicherweise möchten Sie / acme-Challenge / eventuell hinzufügen, aber wenn Sie es mit einer beliebigen Datei wie ./well-known/test debuggen möchten, funktioniert diese Lösung besser
Was macht es eigentlich: prüft, ob die Anfrage mit .well bekannt beginnt, tut in diesem Fall nichts (die Bedeutung von -) und macht es zur letzten Regel [L]
quelle