404-Fehler bei einem bestimmten Pfad/Preise mit Apache-Server

404-Fehler bei einem bestimmten Pfad/Preise mit Apache-Server

Ich habe einen Apache-Server auf Ubuntu 20.04 eingerichtet

Die Site wird problemlos geladen, wenn ich zuerst die Startseite lade (https://leadzilla.ai) und wenn ich dann auf den Preis-Button klicke, gelange ich zuhttps://leadzilla.ai/pricingund diese Seite wird auch problemlos geladen.

Aber wenn ich direkt zuhttps://leadzilla.ai/pricingim Browser bekomme ich eine 404

Hier ist, was ich habe in/etc/apache2/sites-available/leadzilla.ai.conf

<VirtualHost *:80>
    DocumentRoot /var/www/leadzilla.ai
    ServerName leadzilla.ai
    ServerAlias www.leadzilla.ai

    <Directory /var/www/leadzilla.ai>
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Allow from all
    </Directory>

RewriteEngine on
RewriteCond %{SERVER_NAME} =leadzilla.ai [OR]
RewriteCond %{SERVER_NAME} =www.leadzilla.ai
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Ich habe diese Konfiguration in/etc/apache2/sites-available/leadzilla.ai-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot /var/www/leadzilla.ai
    ServerName leadzilla.ai
    ServerAlias www.leadzilla.ai

    <Directory /var/www/leadzilla.ai>
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Allow from all
        #Deny from all
        #Allow from 127.0.0.1
        #Allow from ::1
    </Directory>
    <Directory /var/www/leadzilla.ai/blog>
        AllowOverride All
    </Directory>

Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/leadzilla.ai/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/leadzilla.ai/privkey.pem
</VirtualHost>
</IfModule>

Ich habe Wordpress aktivierthttps://leadzilla.ai/blogalso muss auch darum gekümmert werden.

Folgendes habe ich versucht: RewriteRule ^pricing$ pricing.html [NC]

Ich habe es vor der anderen Umschreibregel hinzugefügt, aber das scheint nicht zu funktionieren. Irgendwelche Ideen?

[BEARBEITEN]

Dies ist jetzt gelöst. Das Problem war eine Next.js-Konfiguration, keine Apache-Konfiguration.

exportTrailingSlash: trueIch habe es in meins gesteckt module.exportsund es hat funktioniert

Antwort1

Ich finde, das ist ein merkwürdiges Verhalten. Aber wenn Sie ein RewriteRulein haben <VirtualHost *:443>, dann sollten Sie auch haben RewriteEngine On.

Gibt es in Ihrem Verzeichnis überhaupt symbolische Links? Irgendwas wie foo -> foo.html?

Gibt es in Ihrer Verzeichnisstruktur Verzeichnisse wie /var/www/html/pricing/?

Denken Sie auch daran, dass Ihr gesamter Datenverkehr über HTTPS läuft, was bedeutet, dass nur der <VirtualHost *:443>im Spiel ist. Der andere virtuelle Host-Eintrag wird nur lange genug verwendet, um von HTTP auf HTTPS umzuleiten. Alle Umschreibregeln für den :80 VirtualHost gelten nicht für HTTPS.

verwandte Informationen