Ugrás a tartalomra

HOSTING Frissítve:

Laravel almappában shared hostingon: tiszta URL-ek .htaccess-szel

Ha a projekt a public_html/projekt alatt van, de a domain gyökeréből kell futnia, az [END] flaggel elkerülhető, hogy a belső /projekt/public útvonal kiszivárogjon az URL-be.

A public_html/.htaccess közvetlenül a projekt/public mappára mutasson.

RewriteEngine On

# Régi, Laravel előtti útvonalak (pl. /site/...) külön kezelve
RewriteRule ^site/(.*)$ projekt/public/site/$1 [END,QSA]

# Létező statikus fájl a public-ban
RewriteCond %{DOCUMENT_ROOT}/projekt/public/$1 -f
RewriteRule ^(.+)$ projekt/public/$1 [END]

# Minden más a Laravel front controllerhez
RewriteRule ^ projekt/public/index.php [END,QSA]
  • Az [END] megakadályozza, hogy az Apache újra feldolgozza a belső rewrite-ot (az [L] ezt nem garantálja).
  • Könyvtáraknál előbb a trailing slash-es átirányítás történjen meg, különben az Apache kiszivárogtathatja a belső útvonalat.

Helyes átirányítás: Location: /site/day/ Hibás: Location: /projekt/public/site/day/

Egyszerűbb, régebbi változat (működik, de a fenti a tisztább):

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/projekt/public
RewriteRule ^(.*)$ projekt/public/$1 [L]