
我已經在 Ubuntu 20.04 上設定了 Apache 伺服器
當我首先加載主頁時,該網站加載正常(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
in <VirtualHost *:443>
,那你也應該有RewriteEngine On
。
您的目錄中是否有任何符號連結?有什麼類似的嗎foo -> foo.html
?
您的目錄結構中是否有類似 /var/www/html/pricing/ 的目錄?
另外,請記住,您的所有流量最終都在 HTTPS 上,這意味著只有 HTTPS<VirtualHost *:443>
有效。另一個虛擬主機條目僅使用足夠長的時間以從 HTTP 重定向到 HTTPS。 :80 VirtualHost 的任何重寫規則不適用於 HTTPS。