
Nastavenie .htaccess pre Laravel na subdoméne
Ak používate Laravel na subdoméne (public_html/_sub) a nefunguje vám správne načítavanie podstránok, zrejme bude problém v nastaveniach konfiguračného súboru .htaccess v adresári /public/ v rámci danej subdomény.
Odporúčame používať tieto pravidlá:
# Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ /index.php [L]
Súbor .htaccess s týmto obsahom uložte do adresára /public/ a stránka by mala fungovať. Nemýľte si adresár /public/, ktorý je v rámci Laravel s koreňovým adresárom /public_html/.
Nastavenie Laravel na subdoméne pri vlastnom webroote
Ak máte Laravel na subdoméne a popritom máte v /public_html/ nastavený vlastný webroot (adresár /webroot/ obsahuje webovú stránku) tak skúste tieto úpravy súborov .htaccess:
.htaccess v /public_html/
# Uncomment the following to prevent the httpoxy vulnerability # See: https://httpoxy.org/ #<IfModule mod_headers.c> # RequestHeader unset Proxy #</IfModule> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.)?mojadomena\.sk$ RewriteRule ^$ webroot/ RewriteCond %{HTTP_HOST} ^(www\.)?mojadomena\.sk$ RewriteRule (.*) webroot/$1 </IfModule>
- mojadomena treba pochopiteľne nahradiť názvom vlastnej domény
- webroot treba nahradiť adresárom, z ktorého sa má načítavať web
.htaccess v subdoméne Laraver - určuje kde má Laravel webroot
<ifmodule mod_rewrite.c> <ifmodule mod_negotiation.c> #Options -MultiViews </ifmodule> RewriteEngine On RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ /public/$1 [L,QSA] RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^ ^$1 [N] RewriteCond %{REQUEST_URI} (\.\w+$) [NC] RewriteRule ^(.*)$ public/$1 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ server.php </ifmodule>
.htaccess v /public/
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> #Options -MultiViews -Indexes </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ /index.php [L] # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] </IfModule>
Pozrite aj tento článok
Pozrite aj tento článok