![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.12.2011 Ostrzeżenie: (0%)
|
Witam! Nie mogę sobie poradzić z mod_rewrite w serwisie opartym na MVC który próbuję napisać.
chciałbym, żeby .htaccess robił 3 rzeczy:
Niestety wszelkie moje próby osiągnięcia takiego efektu kończą się albo niczym, albo błędem 500; a tutoriali mod_rewrite czytałem chyba z 10. Np. punkt 1szy wyobrażałem sobie tak: Kod RewriteEngine On RewriteRule ^.$ index.php$1 [L] Jednakże kod ten, nie wywołuje żadnego efektu. Byłbym bardzo wdzięczny za pomoc w tej kwestii. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%)
|
Kod ^.$ robi tyle co: ^ - początek ciągu . - jeden dowolny znak $ koniec ciągu rozwiązanie: zamiast . użyj .* co do punktu 2. poczytaj o RewriteCond (+ REQUEST_FILENAME) punkt 3. rozwiąże się wraz z punktem 2. (IMG:style_emoticons/default/wink.gif) |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.12.2011 Ostrzeżenie: (0%)
|
Hm,
RewriteRule ^(.*)/$ index.php$1 [L,QSA] czy RewriteRule ^(.*)/$ index.php/$1 [L,QSA] też nie pomaga; co do 3 jest opcja, żeby zrobić to tak: we wszystkich folderach, do których chcę zakazać dostępu utwórzyc pliki .htaccess i naklepać tam: RewriteEngine Off Deny From All. brzmi to rozsądnie? include powinno działać mimo to? |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%)
|
Zamiast:
RewriteRule ^(.*)/$ index.php$1 [L,QSA] zrób: RewriteRule ^(.*)$ index.php/$1 [QSA,L] |
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Ale zapomniano dodać, że jeszcze dodatkowo dobrze sobie zrobić katalogi grupujące to, do czego chcesz dać dostęp bezpośredni. Dobrym pomysłem jest zrobić katalog typu "media" i w nim podkatalogi "css", "js" i inne. W htaccess definiujesz wtedy , że gdy istnieje w danym katalogu realny plik lub folder, to ma z niego odczytywać zamiast przekierować do indexu. Dobrym przykładem jest tu domyślny htaccess FW Kohana, który wygląda tak:
co można przetłumaczyć: jeśli wywołany plik nie jest plikiem lub katalogiem na serwerze, to przepisz adres na index.php/ścieżka i puść go do przetwarzania. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.12.2011 Ostrzeżenie: (0%)
|
adbacz, wciąż błąd 404 : (
thek, Kod RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L] działa, zaś samo Kod RewriteRule .* index.php/$0 [PT,L] daje błąd 500. Chciałbym tę drugą opcję, gdyż wolałbym, żeby użytkownik miał dostęp tylko i wyłącznie do jednego pliku php. Pozdrawiam i dzięki |
|
|
|
Post
#7
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Nie działa tak samo. Zwróć uwagę na warunki, bo to wyrażenie warunkowe. Bez niego http://www.domena.pl/plik.css zostanie wywołany jako http://www.domena.pl/index.php/plik.css a chyba nie o to chodzi. Dlatego taki warunek... "Przewalaj" na plik index.php tylko nie istniejące pliki i foldery. W ten sposób unikasz choćby przewalania plików obrazów, które teoretycznie także mogą być przez plik index.php przerzucane.
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.12.2011 Ostrzeżenie: (0%)
|
Chodzi. Obrazy i wszystko wrzucę do jakiegoś webroot/media folderu i warunek będzie taki, ze jeśli to nie ten folder, to all do indexu.
Nie chcę, żeby userzy mieli dostęp do jakichkolwiek php/ |
|
|
|
Post
#9
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
To wrzuć je do jednego folderu czy coś i ustaw mu brak dostępu. Znowu odsyłam do domyślnego htaccess Kohany (IMG:style_emoticons/default/wink.gif)
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 25.12.2011 Ostrzeżenie: (0%)
|
Dobra, śmiga, wielkie dzięki (IMG:style_emoticons/default/smile.gif)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 16:45 |