Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ścieżka katalog domena
Forum PHP.pl > Forum > Przedszkole
Malinaa
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
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
A inna sprawa że np linkowanie tak jak to pokazujesz dla styli, nie ma prawa wyjść ponad public.
Tomplus
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
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
Tutaj można wciąż dostać się do plików przez domena.pl/public/style.css
Malinaa
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.