Я получаю сообщение об ошибке 404 при развертывании проекта на работающем сервере. Я получаю страницу laravel с надписью Sorry, the page you are looking for could not be found.
, поэтому я знаю, что она достигает моего проекта.
Я запустил php artisan config:cache
и php artisan route:cache
, чтобы зарегистрировать свои маршруты и кеш, но это по-прежнему не меняется. не совсем уверен, почему я получаю эту ошибку. Корень моего документа в моем виртуальном хосте также установлен в мою общую папку.
Шаги, которые я предпринял для развертывания
777
(я знаю, что это неправильно, я просто хотел развернуть его и посмотреть, есть ли в нем ошибки)project/public
vhost
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/html/API/public
#DocumentRoot /var/www/API/public/
ServerName api.app.io
ServerAlias api.app.io
ErrorLog ${APACHE_LOG_DIR}/api-error.log
CustomLog ${APACHE_LOG_DIR}/api-access.log combined
<Directory "/var/www/API/public">
#Options +Includes
#Options +FollowSymLinks -Indexes
Options All
AllowOverride All
Require all granted
</Directory>
SSLCertificateFile /etc/letsencrypt/live/api.app.io/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/api.app.io/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/api.app.io/chain.pem
</VirtualHost>
</IfModule>
.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]
# Handles JWT middleware
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
</IfModule>
Ничего подобного. последняя запись была связана с ошибкой, которую я решил немного раньше.
@jermaynewilliams Мы не можем решить проблему с помощью этой информации, пожалуйста, поделитесь дополнительной информацией
может быть проблема с вашим файлом .htaccess, или вы используете неправильную версию PHP на вашем сервере. в любом случае, если это виртуальный хостинг, вы можете попросить помощи у провайдера.
@FatemehMajd Какая проблема будет в моем .htaccess
, моя версия php такая же, как моя версия dev
@UdhavSarvaiya Я обновил свой вопрос. Это примерно столько информации, сколько я могу дать. Я не получаю никакой другой информации из журналов или чего-то еще
На самом деле я не уверен, но обычно что-то можно сделать в этой области.
плюс, я не думаю, что простого указания на это может быть достаточно (хотя я не уверен в этом). вы должны использовать что-то вроде nginx и с его помощью направлять каждый запрос в файл index.php.
Вы вносили какие-либо изменения в файлы httpd.conf
и .htaccess
?
@UdhavSarvaiya Никаких изменений в этих файлах. и я использую apache
Ваша проблема уже решена? Если нет, не могли бы вы поделиться своим файлом маршрутов?
Какая у вас ОС для разработки и ОС для живого сервера? Это может быть чувствительно к регистру, будьте осторожны с именами файлов
Внимательно посмотрите на директивы вашего виртуального хоста DocumentRoot /var/www/html/API/public
и <Directory "/var/www/API/public">
, это неправильно. Я бы тоже не назвал свой проект таким образом ... Когда вы получите ошибку 404, просто проверьте журнал ошибок apache. и вставьте соответствующие строки в свой исходный вопрос. Вы должны проверить с 1 маршрутом, посмотреть, работает ли он. Не меняйте исходный файл .htaccess в / public, чтобы проверить, работает ли оригинальный Laravel.
Попробуйте изменить версию php в панели вашего хостинга.
не могли бы вы проверить и поделиться содержимым файла журнала с
storage/logs