Я создал новый Laravel сайт с веб-сервером Apache2 и имитировал настройку аналогичного рабочего сайта на том же сервере, но каждый раз, когда я перехожу по URL-адресу example.com/ что-нибудь это дает мне ошибку 404 страницы не найдена. URL основного сайта работает, но страницы не доступны.
Например:
- example.com {{Это отлично работает}}
- example.com / home {{Ошибки со страницей не найдены}}
- example.com / everything-i-put-here {{Ошибки со страницей не найдены}}
Сайт работает нормально на других серверах и локально, так что я уверен, что это не сам сайт Laravel, который сломан. Другой сайт laravel на том же сервере с практически одинаковыми настройками (насколько я вижу) работает нормально, поэтому я знаю, что сам сервер настроен правильно и обслуживает другие сайты.
Я довольно новичок в настройке виртуального сервера apache2, так что я уверен, что я просто не настроил это правильно. Я просматривал inte rnet и прочитал так много постов, рекомендующих людям настроить файлы apache2.conf и .htaccess в основном так же, как они у меня, так что я немного растерялся. Кто-нибудь получил какие-либо предложения?
apache файл конфигурации (символическая ссылка на сайтах с поддержкой):
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect 301 / https://example.com/
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/example.com/public_html/public
ServerName example.com
<Directory /var/www/example.com/public_html/public>
Options -Indexes +FollowSymlinks +MultiViews
AllowOverride All
Require all granted
# SSLRequireSSL
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/www/example.com/fpm/php7.2-example.sock|fcgi://localhost/"
</FilesMatch>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile path/to/key.pem
SSLCertificateKeyFile path/to/key.pem
</VirtualHost>
.htaccess файл:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
и да, modrewrite включен