Jeg er ny med at være vært for webapps online. Jeg ville være vært for en app i mit underdomæne, f.eks departmennt1.example.com. Jeg tilføjede underdomænet i cPanel. Placeret sin mappe i filhåndtering. Det sker, at underundergrunden også er en mappe i rodmappen. Jeg uploader det lokalt fungerende websted i underdomænemappen. Efter at have oprettet min database på .env folder. Jeg sørger også for, at mine offentlige mappefiler var inde i underdomænemappen. Jeg sørger for, at appen og autoload.php i index.php -filen i underdomænemappen peger korrekt på leverandør- og boostrap-mappen.

Derefter forsøgte jeg at indlæse underdomæne-adressen i browseren, men kun indeksiden, dvs.

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

enhver anden URL vender tilbage, som login vises

Ikke fundet

Den anmodede URL blev ikke fundet på denne server.

Derudover opstod der en 404 Not Found-fejl under forsøg på at bruge et ErrorDocument til at håndtere anmodningen.

Jeg prøvede det på et andet hostingfirma, hvor underdomænet som standard ligger i public_html bibliotek og alt fungerede fint.

Hvordan kan jeg være vært for det første hostingfirma?

  • Hvis du kun har en index.html-fil i biblioteket, viser den det? Hvis ikke, er der noget galt med den måde, underdomænet peger på dokumentets rod

Jeg var i stand til at løse hele problemet ved at ændre min .htaccess fil fra

# 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 

til

  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]  

Jeg ved ikke, hvad koden ovenfor gør. Jeg vil elske det at få udforskning til gavn for alle

  • 1 Denne kode sender dybest set alle "virtuelle URL" -anmodninger til index.php (Laravel front-controller) for Laravel til derefter at slå ruten op og bygge siden. Du skal har haft noget lignende, da du prøvede dette hos den anden vært, der fungerede, ellers ville du også have haft 404'ere for alle undtagen hjemmesiden. (Anmodning om rodmappen vil ringe index.php som standard - så disse direktiver er ikke påkrævet for hjemmesiden.) Hvis du fjernet det AddHandler direktiv, så finder du måske ud af, at du nu kører en anden version af PHP.
  • Koden blev faktisk indstillet automatisk fra den anden vært. Jeg så forskellen og prøvede at prøve den. Og heldigvis fungerede det. Begge de to hostingfirmaer havde en anden mappe til underdomæne-filen. Den ene, jeg havde problemer med, havde den underdomæne-mappe i rodmappen, med den anden havde undermappen i public_html-mappen

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger