Получение 404 по определенному пути / цены с сервером Apache

Получение 404 по определенному пути / цены с сервером Apache

Я настроил сервер Apache на Ubuntu 20.04.

Сайт загружается нормально, когда я сначала загружаю домашнюю страницу (https://leadzilla.ai) и после этого, когда я нажимаю на кнопку ценообразования, меня переносит наhttps://leadzilla.ai/pricingи эта страница тоже загружается нормально.

Но когда я перехожу непосредственно кhttps://leadzilla.ai/pricingв браузере я получаю 404

Вот что у меня есть/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>

У меня есть эта конфигурация в/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>

У меня установлен Wordpresshttps://leadzilla.ai/blogтак что об этом тоже нужно позаботиться.

Вот что я попробовал: RewriteRule ^pricing$ pricing.html [NC]

Я добавил его перед другим правилом перезаписи, но это, похоже, не работает. Есть идеи?

[РЕДАКТИРОВАТЬ]

Теперь это решено. Проблема была в конфигурации Next.js, а не в конфигурации Apache.

Я вставил exportTrailingSlash: trueв свой module.exportsи это сработало

решение1

Я нахожу это странным поведением. Но если у вас есть RewriteRuleв <VirtualHost *:443>, то у вас также должно быть RewriteEngine On.

Есть ли вообще в вашем каталоге символические ссылки. Что-нибудь вроде foo -> foo.html?

Есть ли в вашей структуре каталогов такие каталоги, как /var/www/html/pricing/?

Также помните, что весь ваш трафик попадает на HTTPS, а это значит, что <VirtualHost *:443>в игре участвует только . Другая запись виртуального хоста используется достаточно долго для перенаправления с HTTP на HTTPS. Любые правила перезаписи для :80 VirtualHost не применяются к HTTPS.

Связанный контент