Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Mod rewrite, wylaczyc odwolania do.php,przekierowac wszystko poza jpg,css do indexu
Sumo
post 25.12.2011, 12:29:50
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:
  1. przekierowywał wszystkie żądania do index.php, podając treść żądania po ukośniku. np, z strona.pl/costam1/costam2, robil strona.pl/index.php/costam1/costam2
  2. ...chyba, ze, odwołanie jest do pliku css, jpg etc; żeby nie utrudniać tworzenia layoutu
  3. sprawiał, że żadne odwołanie do pliku .php nie będzie działało

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.
Go to the top of the page
+Quote Post
r4xz
post 25.12.2011, 13:15:59
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. wink.gif


--------------------
Go to the top of the page
+Quote Post
Sumo
post 25.12.2011, 13:31:09
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?
Go to the top of the page
+Quote Post
adbacz
post 25.12.2011, 14:05:12
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]
Go to the top of the page
+Quote Post
thek
post 25.12.2011, 18:11:42
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:
[APACHE] pobierz, plaintext
  1. RewriteCond %{REQUEST_FILENAME} !-f
  2. RewriteCond %{REQUEST_FILENAME} !-d
  3.  
  4. RewriteRule .* index.php/$0 [PT,L]
[APACHE] pobierz, plaintext

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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Sumo
post 25.12.2011, 18:44:22
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
Go to the top of the page
+Quote Post
thek
post 25.12.2011, 19:17:31
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.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Sumo
post 25.12.2011, 22:23:29
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/
Go to the top of the page
+Quote Post
thek
post 27.12.2011, 08:40:41
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 wink.gif
[APACHE] pobierz, plaintext
  1. # Protect application and system files from being viewed
  2. RewriteRule ^(?:application|modules|system)\b - [F,L]
[APACHE] pobierz, plaintext



--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Sumo
post 27.12.2011, 14:36:58
Post #10





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 25.12.2011

Ostrzeżenie: (0%)
-----


Dobra, śmiga, wielkie dzięki smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.06.2024 - 16:24