Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne] 2 pytania o rewrite_mode
Forum PHP.pl > Forum > Przedszkole
unnamedly
Witam, mam 2 problemy:

#1: Mam sobie kod:
  1. RewriteRule ^blabla,([^-]+)$ blabla.php?b=$1 [L]
. Wszystko niby ok. Wpisuję blabla,as i to jest równoważne z blabla.php?b=as. A teraz niestety mam więcej parametrów, załóżmy: blabla.php?b=as&cos=2&bla=sgds. Jak to teraz zrobić jedną (max 2 "komendami") w .htaccess, by przekierowywało bez względu na to czy wpisaliśmy jakiś parametr, czy nie.
  1. RewriteRule ^blabla,([^-]+),([^-]+),([^-]+)$ blabla.php?b=$1&cos=$2&bla=$3 [L]

Powyższy kod niby w tym przypadku by zadziałał, ale jeśli bym nie wpisał np. parametru cos, to wyskoczył by mi 404.

#2: Jak zrobić "redirect w drugą stronę". Chodzi mi o to, że mam:
  1. RewriteRule ^costam,(.*)$ costam.php?$1 [R]
i po wpisaniu costam,asg przenosi mnie do costam.php?asg. Ja chcę na odwrót.


Z góry dzięki za pomoc w tych dwóch sprawach.
Fifi209
Zrób tak jak w robią to inni np. we FW smile.gif Wszystko ale to wszystko przekierowuj na index.php a tam już odpowiedni routing, wywoływanie akcji etc.
unnamedly
Dużo mi to nie mówi biggrin.gif
Fifi209
To zobacz np jak działa kohana smile.gif
unnamedly
Ok, dzięki, ale zanim ogarnę Frameworki, to minie trochę czasu biggrin.gif Na razie chciałbym to zrobić "ręcznie".
Fifi209
To "ręcznie" dopisuj kolejne reguły biggrin.gif
unnamedly
ohmy.gif Ale jeśli mam np 3 reguły - oznaczę je (A, B, C), to bym musiał tak zrobić:
- A (RewriteRule ^plik,(.*)$ plik.php?a=$1)
- B (RewriteRule ^plik,(.*)$ plik.php?b=$1)
- C (RewriteRule ^plik,(.*)$ plik.php?c=$1)
- A, B (RewriteRule ^plik,(.*),(.*)$ plik.php?a=$1&b=$2)
- A, C (RewriteRule ^plik,(.*),(.*)$ plik.php?a=$1&c=$2)
- B, C (RewriteRule ^plik,(.*),(.*)$ plik.php?b=$1&c=$2)
- A, B, C (RewriteRule ^plik,(.*),(.*),(.*)$ plik.php?a=$1&b=$2&c=$3)

To są kombinowania na 3 reguły, wyobraź sobie co by było z np. 5 regułami biggrin.gif (ja mam ich max. 8).

Sposób, w którym mod_rewrite by nie zwracał uwagi na to, czy jest jakaś reguła czy nie by załatwił to jedną linijką kodu:
- A, B, C (kod by sam sprawdzał, czy jest samo A, czy jest A i C, czy też wszystkie).
nospor
I dlatego takie rzeczy robi się w php. W .htaccess masz tylko przekierowanie wszystkiego na index.php a całą resztą zajmuje sie ruter w php. Tu masz przykład
http://nospor.pl/ladne-urle.html
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.