Malinaa
30.11.2020, 20:17:44
Mam strukturę katalogów -> katalog główny (domena) / public / css itd.
w katalogu głównym mamy plik index.php który wczytuje plik (szablon) z katalogu public/ index.html
Kłopot w tym, że aby strona index wyświetlała prawidłowo ścieżka do style, zdjęcia itd. musi być np.:
<link rel="stylesheet" href="/public/css/style.css"> -> public/css/style.css
Jak sprawić, aby przy takiej strukturze katalogów strona index ładowała style
przy ścieżce css/style.css tak, aby nie było widać (w domenie) że pliki znajdują się katalogu public?
Coś jak w Symfony, wchodzimy na adres główny, ale pliki są w katalogu public / assets / css (img, js i inne)
jednak po wyświetlaniu źródła strony widzimy ścieżkę assets i dalej... nie widzimy katalogu public.
Jak przygotować taką strukturę katalogów strony?
Tomplus
2.12.2020, 12:42:45
Proste.
Skoro public/ to twoja strona domeny, to musisz ustawić na hostingu aby adres do strony WWW była pod katalog public/ a nie np. moja_strona/
Czyli jeżeli scieżka dla strony to (zgaduję):
/home/malinaa/websites/malina.pl/public/
ale do FTP już adres jest:
/home/malinaa/websites/malina.pl/
viking
2.12.2020, 13:03:38
A inna sprawa że np linkowanie tak jak to pokazujesz dla styli, nie ma prawa wyjść ponad public.
Tomplus
4.12.2020, 17:01:39
To właśnie napisałem. dla styli, dla index.html/php katalog public nie będzie istniał.
Żeby odwołać się do tego co jest niżej to będziesz musiał w index.php napisać np.:
require_once '../moj_inny_skrypt.php';
Malinaa
5.12.2020, 01:33:04
Nie prawda. Doszedłem...
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
i problem rozwiązany.
Poza tym stworzyłem przy okazji wzorzec MVC i wyszedł mi interesujący autorski Framework -> CMS
Tomplus
5.12.2020, 22:13:19
Tutaj można wciąż dostać się do plików przez domena.pl/public/style.css
Malinaa
16.12.2020, 18:42:46
Z podanym rozwiązaniem skrypt działa prawidłowo, więc jest ok.
A jak można zabezpieczyć tu dostęp do katalogu public ?
Jak zabezpieczyć dostęp do katalogu public i innych katalogów znajdujących się w katalogu głównym domeny tak,
aby dostęp (z zewnątrz) był tylko do zawartości katalogu public?
Po wpisaniu adresu:
1. css/style.css -> ok wyświetlam plik
2. public/css/style.css -> nie wyświetlam (katalog zabezpieczony "nie widoczny")
Czy jest sposób, aby nie można było dostać się do pliku style.css wpisując ścieżkę 2?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.