Nakon ovog poglavlja
Što ćete znati napraviti
- Rastaviti URL na shemu, host, port, putanju, query i fragment.
- Objasniti uloge DNS-a, TLS-a i web-poslužitelja.
- Postaviti public kao document root i kanonsko preusmjeravanje.
Adresa resursa
Svaki dio URL-a ima drugu ulogu
U adresi https://phpnova.invictum.hr:443/clanci/42?print=1#primjer shema određuje protokol, host domenu, port mrežnu uslugu, putanja resurs, query dodatne parametre, a fragment mjesto unutar dokumenta. Fragment se ne šalje poslužitelju.
URL-ovi trebaju biti stabilni, čitljivi i neovisni o internoj putanji PHP datoteke. Identifikator ili slug pripada putanji; filter, pretraga i straničenje prirodno pripadaju query parametrima.
Tri odvojena koraka
DNS pronalazi, TLS štiti, server usmjerava
DNS zapis prevodi domenu u adresu poslužitelja. TLS certifikat potvrđuje domenu i šifrira promet. Apache ili Nginx prima zahtjev, odabire VirtualHost i poslužuje statičku datoteku ili predaje PHP zahtjev PHP-FPM-u/modulu.
Certifikat ne čini aplikaciju sigurnom, ali bez HTTPS-a nema sigurne prijave, kolačića ni povjerljivog prometa. Obnovu certifikata automatizirajte i nadzirite.
<VirtualHost *:443>
ServerName phpnova.invictum.hr
DocumentRoot "/var/www/phpnova/current/public"
<Directory "/var/www/phpnova/current/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Jedna javna ulazna točka
Web-server prosljeđuje nepostojeće datoteke routeru
Statički asseti mogu se poslužiti izravno, a aplikacijske putanje idu u public/index.php. Pravila moraju sačuvati metodu i query string. Jednu varijantu hosta i HTTPS proglasite kanonskom te ostale trajno preusmjerite.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Primijenite naučeno
Vježba: Lokalna projektna domena
Postavite projekt na lokalnu HTTPS domenu i provjerite putanju zahtjeva.
- Document root usmjerite na public/.
- Otvorite statički asset i aplikacijsku rutu.
- Provjerite status i Location zaglavlje kanonskog preusmjeravanja.
Za provjeru i nastavak