Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekierowanie domy na katalog (.htaccess)
Forum PHP.pl > Forum > PHP
404
Witam.
Mam problem z przekierowaniem domeny na dany katalog. Przeszukałem kilkanaście stron, ale wszędzie metoda jest praktycznie taka sama, a rozwiązania mojego problemu... nie ma (albo źle szukam smile.gif )

Przykładowy kod z home.pl:
Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena\.pl$ [NC]
RewriteCond %{REQUEST_FILENAME} !/katalog/
RewriteRule ^(.*)$ /katalog/$1 [L]
https://pomoc.home.pl/bazawiedzy/akademia/278

Wszystko jest ok, po przejściu na domena.pl wyświetla się zawartość katalogu katalog itd. Mój problem polega na tym, że po przejściu na adres: domena.pl/katalog/ strona... też się pojawia. Chciałbym żeby po wpisaniu takiego adresu serwer zwrócić 404. Tzn. wydaje mi się, że tak powinno być i może i wiem dlaczego tak się dzieje, ale nie mam pomysłu jak to obejść.
Uriziel01
Hmmm nie wiem czy dobrze rozumiem twój problem, ale czy chodzi o to że dla fizycznie istniejących plików/katalogów te reguły także działają ?
Jeżeli tak, to rozwiążesz to kodem w stylu:
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


Jeżeli problem tkwi w czymś innym to wyjaśnij go troszkę dokładniej a z pewnością coś zaradzimy smile.gif
404
Kod
/
|-- cgi-bin
|-- static
     `-- index.html
|-- cms
|-- test
`-- .htaccess

W katalogu / wrzucam do .htaccess:
Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena\.pl$ [NC]
RewriteCond %{REQUEST_FILENAME} !/static/
RewriteRule ^(.*)$ /static/$1 [L]

Wchodząc na adres domena.pl wyświetla się index.html z katalogu static - OK.
Wchodząc na adres domena.pl/test serwer rzuca 404 - OK.
Wchodząc na adres domena.pl/static serwer NIE rzuca 404 tylko wyświetla się plik index.html z katalogu static - FAIL! Wydawało mi się, że zapytanie będzie wyglądało tak: "(...)/static/static/", ale wygląda na to, że serwer wyrzuca "(...)/static/". Poza tym, to grozi przecież "Duplicate content", poza tym ten static w adresie nie wygląda za dobrze.
Uriziel01
Aaaa, teraz rozumiem biggrin.gif

Np. przez taką małą regułę umieszczoną w /static/.htaccess

Kod
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*)$ [R=404,L]


uniemożliwi to bezpośredni dostęp do plików umieszczonych w static.

Ewntualnie tak:

Kod
RewriteCond %{THE_REQUEST} static
RewriteRule ^(.*)$ [R=404,L]


smile.gif
404
Ok, trochę mnie tu nie było tongue.gif W każdym razie dzięki za odpowiedź - Twoje rozwiązanie działa ok.
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.