Hostování webových aplikací online začínám. Chtěl jsem hostit aplikaci ve své subdoméně, např departmennt1.example.com. Přidal jsem subdoménu v cPanel. Umístil svůj adresář do správce souborů. Stává se, že subdmain je také složka v kořenovém adresáři. Nahrávám místně fungující web do složky subdomény. Po nastavení mé databáze na .env složku. Také se ujistím, že moje soubory veřejné složky byly uvnitř složky subdomény. Zajistím, aby aplikace a autoload.php v index.php soubor ve složce subdomény správně ukazuje na složku dodavatele a boostrap.

Poté jsem se pokusil načíst adresu subdomény v prohlížeči, ale pouze indexovou stránku, tj.

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

jakákoli jiná URL se vrátí jako přihlášení

Nenalezeno

Požadovaná adresa URL nebyla na tomto serveru nalezena.

Při pokusu o zpracování požadavku pomocí ErrorDocument došlo k chybě 404 Nenalezeno.

Zkusil jsem to na jiné hostitelské společnosti, kde subdoména ve výchozím nastavení sídlí v public_html adresář a vše fungovalo dobře.

Jak mohu hostit v první hostingové společnosti?

  • Pokud máte v adresáři pouze soubor index.html, zobrazí se? Pokud ne, pak je něco v nepořádku se způsobem, jakým subdoména ukazuje na kořen dokumentu

Byl jsem schopen vyřešit celý problém změnou mého .htaccess soubor z

# 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 

na

  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]  

Nevím, co výše uvedený kód dělá. Budu rád, když dostanu vysvětlení pro větší dobro všech

  • 1 Tento kód v zásadě odesílá všechny požadavky „virtuální adresy URL“ na index.php (přední řadič Laravelu), aby Laravel poté prohledal trasu a vytvořil stránku. Vy musí měli něco podobného, ​​když jste to zkusili u druhého hostitele, který fungoval, jinak byste měli 404s pro všechny kromě domovské stránky. (Žádost o kořenový adresář by volala index.php ve výchozím nastavení - takže tyto směrnice nejsou pro domovskou stránku vyžadovány.) Pokud ano odstraněn the AddHandler direktiva pak možná zjistíte, že nyní používáte jinou verzi PHP.
  • Kód byl ve skutečnosti nastaven automaticky od druhého hostitele. Všiml jsem si rozdílu a pokusil jsem se ho vyzkoušet. A naštěstí to fungovalo. Obě dvě hostingové společnosti měly jiný adresář pro soubor subdomény. Ten, s nímž jsem měl problém, měl složku subdomény v kořenovém adresáři, druhý měl složku subdomény v adresáři public_html

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?