Šta je novo?

Ubuntu i Web server - Kako sakriti roditeljski direktorijum Web sajta

codejan

Čuven
Učlanjen(a)
06.07.2004
Poruke
256
Poena
620
Moja oprema  
CPU & Cooler
Intel Core i5-3470 quad core
Matična ploča
Gigabyte GA-P75-D3
RAM
Kingston 12GB DDR3 HYPER blu
GPU
EVGA GeForce GTX 260 896MB DDR3
Storage
Hitachi 1TB, EXRAM 512GB SSD
Zvuk
Creative Live! 5.1
PSU
Thermaltake SMART RGB 700W
Kućište
MS MidiATX
Monitor
BENQ FP91G+, HP W19
Miš & tastatura
Logitech MX400
Ostale periferije
neo SW-H55
Laptop
Lenovo ThinkPad T450s, ASUS eeePC 1001HA
Tablet
Lenovo TB-8505X
Mobilni telefon
Xiaomi Redmi 10 2022
Pametni uređaji
Denver BFH-17, Xiaomi TV Stick 4K
Pristup internetu
  1. ADSL
Imam pitanje za iskusne korisnike Linuxa.

Danas sam skinuo Ubuntu server 11.04 i podesio Web server. Mnogo muke i patnje. Ok, server radi.

Imam pitanje o "sakrivanju" roditeljskog direktorijuma odredjenog sajta.

Na primer, u www direktorijumu napravim folder neki_sajt i u njemu hocu da imam direktorijume:
  • includes
  • logs
  • public

Kada ukucam
Kod:
http://nekiip/[I]nekisajt[/I]/
- voleo bih da mi prikaze sadrzaj public direktorijuma, a da mi se, spolja, ne vide ostali direktorijumi.

Hvala.
 
Nisam baš toliko iskusan kao ostali ovde, ali da probam.

U apache2.conf imaš recimo ovako nešto definisano za folder u kome se nalaze svi sajtovi (naravno sa brdom komentara, ovo nije sa Ubuntu-a, ali trebalo bi da je isto)
Kod:
<Directory "/var/www">
    
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all

</Directory>

Za includes i logs folder definiši nešto ovako
Kod:
<Directory "/var/www/nekisajt/includes">
    
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    Deny from all

</Directory>

<Directory "/var/www/nekisajt/logs">
    
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    Deny from all

</Directory>

Ralika je u tome što je za glavni folder definisano Allow from all, a za dva niža foldera je Deny from all. (Order naredba zadaje red kojim se evaluiraju Deny i Allow naredbe). Mislim da je sve jasno.

Ubaci ovo na sam kraj falja čisto da možeš da nađeš ili stavi include pa ovo stavi u neki odvojen fajl recimo daš mu ime folder-access.conf

Možeš ovo da uradiš i preko .htaccess fajlova u tim folderima, ali ti fajlovi su po defaultu skriveni i parsiraju se za svaki request, dok se glavna konfiguracija učitava samo jednom kad se pokrene server, pa ako nećeš vršiti često izmene nema potrebe da stavljaš .htaccess.

Kolege jel ovo OK? :)
 
Poslednja izmena:
Ja mislim da si delimicno u pravu, ali mislim da bi u Apache-u trebalo podesiti i Document Root za preusmeravanje na Public folder. Ako ima jos neko da potrvdi...
 
Pa onda iznad ta dva stavi još i
Kod:
<Directory "/var/www/nekisajt">

    Options Indexes FollowSymLinks MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteRule ^$ public/

</Directory>

^$ označava prazan string, koji će biti preusmeren na public/ folder. Trebalo bi ovo preusmeravanje da važi samo kad dođe go URL bez foldera ili bilo čega, a da ne prođe kad posle URL-a piše bilo šta drugo. Ako dođe logs ili includes, serve će pogledati dozvole za direktorijume i odbiti zahtev.

Mada bi ipak bilo zgodno da objasniš kakav je to sajt (kako si zamislio da bude URL šema), pa da sastavimo nešto što odgovara. Ali i ovako se čini u redu.
 
Poslednja izmena:
Sema ti je da imas poseban IP ili poseban domen za svaki od sajtova.

A koliko vidim ti nemas domene i zelis da koristis samo jedan IP, a da razliciti sajtovi budu omoguceni preko istog IP-a, onda mozes ovako:

Kod:
Alias /sajt1 /var/www/sajt1/public
Alias /sajt2 /var/www/sajt2/public

ili

Kod:
Alias /sajt1 /home/sajt1/public
Alias /sajt2 /home/sajt2/public
 
Poslednja izmena:
Nazad
Vrh Dno