Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Apache] Spis plików
Forum PHP.pl > Forum > Serwery WWW > Apache
Ka-lolek
Witam,
jak zrobić żeby jeżeli w danym katalogu nie mam pliku index to po wejsciu do niego przez przegladarke zeby nie pojawial sie spis plikow tylko np. informacja, ze strona nie istnieje (tak jest na niektorych hostingach).
Najlepiej zeby ta informacja sie pojawiala tylko przy wchodzeniu z komputera zewnetrznego, a gdy wchodze z localhosta, tam gdzie jest zainstalowany apache to zeby normalnie pojawial sie spis plikow w danym katalogu

pozdrawiam
kallosz
htaccess
Ka-lolek
jezeli kazanoby mi strzelac, tez powiedzialbym, ze ten plik.. ale pytalem "jak" ;]
zwlaszcza jesli chodzi o ten podzial na polaczenia z localhost i zewnetrzne
Crozin
Możesz skorzystać z DirectoryIndex
webdice
Plik .htaccess:

Kod
Options -Indexes
Ka-lolek
no ok, znalazlem cos takiego:
http://blog.rabinek.pl/2007/05/26/lista-pl...rze-i-htaccess/
jest troche rozszerzone to o czym napisaliscie ale nadal nie iwem czy mozna zrobic aby z localhosta byly listowane a spoza niego nei?
webdice
Kod
Deny form all
Allow from 127.0.0.1
Ka-lolek
wpisalem w .htaccess
Kod
Options -Indexes
Deny form all
Allow from 127.0.0.1

jest blad:
Cytat
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
webdice
Pomyśl trochę. Zrobiłem literówkę.

Kod
Deny from all
Allow from 127.0.0.1


Jak dodasz:

Kod
Options -Indexes


to lokalnie też nie będzie listować plików.
Ka-lolek
hmm ale nie do konca o to mi chodzi..
bo teraz nawet jak w katalogu jest index, to wyskakuje:
Cytat
Forbidden

You don't have permission to access / on this server.

chce cos takiego osiagnac, ze wchodzac z localhosta jak jest index, to laduje sie index, jak nie ma to laduje sie lista
a wchodzac z zewnatrz jak jest index to wyswietla index, jak nie ma to niech wyswietla forbidden albo 404.
webdice
To dziwne. Jak wchodzisz na localhost? Dla pewności, stwórz plik i dodaj w nim:

  1. <?php
  2. print $_SERVER['REMOTE_ADDR'];
  3. ?>


i podaj jakie IP Ci się wyświetla.

P.S. Możesz spróbować jeszcze:

Kod
Deny from all
Allow from localhost


ale to w zasadzie jest to samo.
phpion
@webdicepl:
a czy przypadkiem kolejność regułek nie ma znaczenia?
Kod
Deny from all
Allow from 127.0.0.1

Chyba wszystkie żądania zostaną odrzucone już w pierwszej regułce.
Wydaje mi się, że takie coś powinno pomóc:
Kod
Allow from 127.0.0.1
Deny from all

czyli najpierw wpuszczamy z localhosta, a dopiero później blokujemy wszystko inne.
webdice
~phpion nie mają znaczenia winksmiley.jpg. Sam tak mam u siebie i działa. Wchodząc przez http://localhost lub http://127.0.0.1 mam dostęp, wchodząc z http://212.244.142.x dostępu już nie mam. Więc obstawiam że autor wchodzi w inny sposób niż podałem w pierwszych dwóch przykładach.
phpion
Cytat(webdicepl @ 9.06.2008, 20:14:56 ) *
~phpion nie mają znaczenia winksmiley.jpg

A to przepraszam za zamieszanie wstydnis.gif
Ka-lolek
wchodze wpisujac "localhost"
Kod
i podaj jakie IP Ci się wyświetla.

wyswietla 127.0.0.1

@phpion zamiana kolejnosci nie ma znaczenia

dodam, ze ten blad 403 wyskakuje kiedy lacze sie wpisujac poprostu moj adres ip. (porty mam poprzekierowywane etc.), kiedy .htaccess jest pusty to wszystko smiga nalezycie

-------------------
@webdicepl (odnosnei Twojej ostatniej odpowiedzi)
wlasnie wchodzac przez localhost pisalem, ze mam dostep.. wchodzac przez moje zewn. ip juz nie mam (do niczego!) - ale przeciez:
Cytat
chce cos takiego osiagnac, ze wchodzac z localhosta jak jest index, to laduje sie index, jak nie ma to laduje sie lista
a wchodzac z zewnatrz jak jest index to wyswietla index, jak nie ma to niech wyswietla forbidden albo 404.


ponawiam pytanie
pyro
można zrobić coś takiego:

dodać regułę:

Kod
ErrorDoc 404 /404.php


gdzie 404.php to plik, na który będzie przekierowanie jeśli serwer napotka błąd 404 (brak pliku) i teraz:

404.php
  1. <?php
  2. if($_SERVER['REMOTE_ADDR'] != '127.0.0.1' || $_SERVER['REMOTE_ADDR'] != 'localhost') // dałem $_SERVER['REMOTE_ADDR'] != 'localhost' w wyniku problemów ( z doświadczenia)
  3. {
  4. echo '<p style="text-align: center; color: red; font-size: 20">404 - Nie odnaleziono pliku!</p>';
  5. }
  6. else
  7. {
  8. // swoje wylistowanie katalogu
  9. }
  10. ?>
Ka-lolek
oj, prawie dziala;p
zamiast ErrorDoc, to ErrorDocument
no i nie 404 tylko 403 w moim przypadku;p
ale nie o to chodzi.
wrzucilem do 403.php cos takiego:

  1. <?php
  2. if($_SERVER['REMOTE_ADDR'] != '127.0.0.1' || $_SERVER['REMOTE_ADDR'] != 'localhost') // dałem $_SERVER['REMOTE_ADDR'] != 'localhost' w wyniku problemów ( z doświadczenia)
  3. {
  4. echo '<p style="text-align: center; color: red; font-size: 20">404 - Nie odnaleziono pliku!</p>';
  5. echo ($_SERVER['REMOTE_ADDR']);
  6. }
  7. else
  8. {
  9. echo 'tu bedzie listing plikow';
  10. }
  11. ?>

i wchodzac z localhosta wyrzuca napis "404 - nie odnaleziono pliku" zamiast "tu bedzie listing plikow' (jezeli wchodze spoza localhosta to tez wyrzuca "404- nie odnaleziono pliku"
zeby sie upewnic, ze wchodze z localhosta wyrzucilem jeszcze zawartosc $_SERVER['REMOTE_ADDR'] i jak byk jest 127.0.0.1


hmm ;>?

dobra, to jakoś działa po zamianie != na == (chociaz to dziwne zachowanie)

ale jak wykonac listing plikow zeby listowalo mi pliki z katalogu do ktorego chcialem wejsc..
wpisujac
  1. <?php
  2. foreach (glob("*.*") as $filename) {
  3. echo "$filename \n";
  4. }
  5. ?>

listuje mi glowny katalog;/.
pyro
tu juz pokombinuj sam... pobieraj katalog z url'a i go listuj czy coś... pomyśl
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.