Czy da się poniższy kod z pliku .htaccess napisać w jednej linii?
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?p=$1&nav=$2 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?p=$1&nav=$2&o1=$3 [L]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?p=$1&nav=$2&o1=$3&o2=$4 [L]
itd...
nospor
4.07.2013, 12:10:07
Nie, to jest wlasnie jedna z wad htaccess. Dlatego wlasnie ja swego czasu z htaccess przerzucilem sie na php do takich zadan
http://nospor.pl/ladne-urle.html
Rozumiem
Co do tego co napisałem w pierwszym poście: jak zrobić żeby jak ktoś wpisze złe parametry przekierowało na stronę główną?
np. poprawne linki:
httpx://jakaśstrona.pl/warszawa/klub/raban
httpx://jakaśstrona.pl/warszawa/klub/raban/galeria
ktoś spreparuje np:
httpx://jakaśstrona.pl/warszawa/coscos/raban
lub
httpx://jakaśstrona.pl/warszawa/coscos/raban/aaa
albo całkowicie wymyśli:
httpx://jakaśstrona.pl/lubie/placki/hi/hi
nospor
4.07.2013, 12:48:29
a skad niby htacces ma wiedziec, ze warszawa jest ok, a placki juz nie?
Albo ze klub jest ok, ale blabla juz nie?
Albo w htaccess zdefiunujesz z palca poprawne slowa, co znowu bedzie cholernie ciezkie bo miast jest duzo albo przerzucic sprawdzanie na php. htaccess do takich zadan sie nie nadaje
Korzystam ze switchy na pierwszych 2 poziomach dalej to już opcje.
Ustawienie headera na defaultcie kończy się pętlą...
nospor
4.07.2013, 13:03:50
Ale o czym teraz znowu mowisz?
header masz robic gdy jest zly parametr a nie na default.... przeciez default wchodzi tez gdy nie ma parametry a wowczas nic dziwnego ze masz petle. No ale teraz to tylko wroze i sie domyslam bo posta napisales tak jakbym mial przed oczami szklana kule...
Ok inaczej jak w switchu zrobić 404 jeśli case się nie zgadza nie robiąc z defaulta 404
pewnie jeszcze bardziej zamotałem...
np. jest tylko jeden case w swithu
to jest poprawne:
httpx://jakaśstrona.pl/warszawa/klub
błąd:
httpx://jakaśstrona.pl/warszawa/sss
przenosi do defaulta i taki URL zostaje - niech się zrobi redirect do:
httpx://jakaśstrona.pl/warszawa
jeśli jest błąd w case.
Wrzuć to do routingu z poziomu aplikacji, bo w ten sposób sobie mocno strzelasz w stopę. Zmiana Apache na coś innego i masz kupę roboty, to raz.
Dwa - pewnych rzeczy w htaccess nie sprawdzisz. Trzy - polskich znaków nie przetworzysz.
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.