Аз съм нов в хостването на уеб приложения онлайн. Исках да хоствам приложение в моя поддомейн, напр departmennt1.example.com. Добавих поддомейна в cPanel. Намира директорията си във файловия мениджър. Случва се подменюто също да е папка в главната директория. Качвам локално работещия сайт в папката поддомейн. След настройка на базата данни на .env папка. Също така гарантирам, че моите файлове с публични папки са били в папката на поддомейн. Гарантирам, че приложението и autoload.php в index.php файлът в папката на поддомените сочи правилно към доставчика и папката boostrap.

След това се опитах да заредя адреса на поддомейн в браузъра, но само индексната страница, т.е.

Route::get('/', function () { return view('welcome'); }); 

всеки друг URL ще се върне, както ще се покаже входът

Не е намерен

Заявеният URL адрес не е намерен на този сървър.

Освен това е възникнала грешка 404 Not Found при опит за използване на ErrorDocument за обработка на заявката.

Опитах го в друга хостинг компания, където поддомейнът по подразбиране се намира в public_html директория и всичко се получи добре.

Как мога да хоствам в първата хостинг компания?

  • Ако имате само файл index.html в директорията, показва ли го? Ако не, тогава има нещо нередно в начина, по който поддомейнът сочи към корена на документа

Успях да разреша целия проблем, като промених своя .htaccess файл от

# php -- BEGIN cPanel-generated handler, do not edit # Set the “ea-php72” package as the default “PHP” programming language.  AddHandler application/x-httpd-ea-php72 .php .php7 .phtml  # php -- END cPanel-generated handler, do not edit 

да се

  Options -MultiViews -Indexes  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]  

Не знам какво прави горният код. Ще ми хареса, за да получа обяснение за по-доброто от всички

  • 1 Този код основно изпраща всички заявки за „виртуален URL“ index.php (предният контролер на Laravel) за Laravel, за да търси маршрута и да изгради страницата. Ти трябва да сте имали нещо подобно, когато сте опитали това на другия хост, който е работил, иначе бихте имали и 404 за всички, освен за началната страница. (Искането на главната директория ще извика index.php по подразбиране - така че тези директиви не са необходими за началната страница.) Ако вие отстранени на AddHandler тогава може да откриете, че сега използвате различна версия на PHP.
  • Кодът всъщност е зададен автоматично от втория хост. Забелязах разликата и се опитах да я пробвам. И за щастие се получи. И двете компании за хостинг имаха различна директория за файла на поддомейн. Този, с когото имах проблем, имаше папка поддомейн в основната директория, а втората имаше папката поддомейн в директорията public_html

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?