Give mail delivery its own admin page and move the origin probe off /.well-known
The mail page under System tries SMTP, PHP mail() and both sendmail modes one by one or all at once, and saves the chosen way to .env without ever showing the password. IONOS answers everything under /.well-known/ itself with 403, so the address and HTTPS checks never reached the installation; the probe now lives at /kantsites-origin (ADR 122). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2497b8cb69
commit
b982cb8944
17 files changed
+597
-148
No files matched your search
+4
-4
@@ -78,10 +78,10 @@ RewriteRule ^ index.php [L]
|
||||
|
||||
# Nichts ausliefern, was nur intern gebraucht wird - falls jemand das Paket versehentlich
|
||||
# vollstaendig in den oeffentlichen Ordner legt statt nur public/.
|
||||
# .well-known ausgenommen: Unter /.well-known/kantsites-origin prueft die Verwaltung, ob die
|
||||
# Website unter einer Adresse hier ankommt (Adresse speichern, HTTPS erzwingen), und Apache
|
||||
# prueft den ersten nicht vorhandenen Pfadteil gegen diese Regel - vorher antwortete die
|
||||
# Probe mit 403. Zertifikatsanbieter (acme-challenge) brauchen den Ordner ebenso.
|
||||
# .well-known ausgenommen: Zertifikatsanbieter (acme-challenge) brauchen den Ordner, und Apache
|
||||
# prueft den ersten nicht vorhandenen Pfadteil gegen diese Regel. Die Probe der Verwaltung
|
||||
# (Adresse speichern, HTTPS erzwingen) liegt nicht mehr dort, sondern unter /kantsites-origin:
|
||||
# IONOS beantwortet /.well-known/ selbst mit 403 (ADR 122).
|
||||
<FilesMatch "^\.(?!well-known$)|\.(env|db|sqlite|lock|md|yaml|yml|dist|log)$">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
+15
-1
@@ -719,10 +719,24 @@ details.card > summary:hover { background: #fafbf8 }
|
||||
.log-list { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 6px }
|
||||
.log-list code { font-size: 11px; overflow-wrap: anywhere }
|
||||
.mail-result { margin-top: 14px }
|
||||
#mail .facts { margin-top: 0 }
|
||||
.mail-result p { margin: 0 0 6px }
|
||||
.mail-result p:last-child { margin-bottom: 0 }
|
||||
.mail-result pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 11px; margin: 6px 0 0 }
|
||||
.mail-log-head { font-size: 14px; margin: 22px 0 0 }
|
||||
/* Unterpunkte im Menü: eingerückt auf die Höhe des Textes, ohne Symbol. */
|
||||
.nav-sub { list-style: none; margin: 2px 0 4px; padding: 0 }
|
||||
.nav-sub .nav-item { padding-left: 42px; font-size: 13px }
|
||||
.mail-form { margin-top: 18px; max-width: 640px }
|
||||
.mail-form fieldset { border: 0; margin: 0 0 16px; padding: 0; min-width: 0 }
|
||||
.mail-form legend { font-weight: 600; font-size: 13px; margin-bottom: 6px; padding: 0 }
|
||||
.mail-form .check-label { display: flex; gap: 8px; align-items: baseline; margin: 4px 0 }
|
||||
.mail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px 12px }
|
||||
.mail-grid label { margin-top: 0 }
|
||||
.mail-grid input { width: 100%; box-sizing: border-box }
|
||||
.mail-actions { display: flex; flex-wrap: wrap; gap: 8px }
|
||||
.mail-actions button { margin: 0 }
|
||||
/* Ohne SMTP brauchen die Felder niemand; wo :has() fehlt, bleiben sie einfach sichtbar. */
|
||||
.mail-form:has(input[name=weg]:checked:not([value=smtp])) .smtp-fields { display: none }
|
||||
|
||||
/* ---- the installer: six screens on an otherwise empty server ---------------------------- */
|
||||
|
||||
|
||||
Reference in new issue
Block a user