lukas0987
29.03.2007, 19:04:47
RewriteEngine On
RewriteRule ^([a-zA-Z]+).html$ index.php?id=$1
RewriteRule ^([a-zA-Z]+)-([0-9]+).html$ index.php?id=$1&mid=$2
RewriteRule ^photo-([0-9]+).html$ index.php?id=$1&gid=$2
RewriteRule ^logowanie.html$ logowanie.php
Witam,
powyżej mam przykład mojego pliku .htaccess
2 linia działa idealnie
3 linia też działa dobrze (www.judo.sulkowice.pl/news-62.html wywołuje www.judo.sulkowice.pl?id=news&mid=62)
4 linia nie działa. Po wpisaniu www.judo.sulkowice.pl/photo-7.html tak jakby nie jest rpzekazywana duga zmienna.
Jeżeli chciałem zamienić znak rozdzielający zmienne z "-" an "/" to nie działało nic.
Dlaczego tak jest?
Przypuszczam że te reguły są dobrze napisane, więc coś jest nie tak w photo.php. Ale gdzie mogę znaleźć błąd?
Nie oczekuję gotowych odpowiedzi. Chciałbym to zrozumieć co jest nie tak.
Pozdrawiam
Łukasz
starach
29.03.2007, 19:11:08
Eee a gdzie ty niby przekazujesz tą drugą zmienną którą ma być gid ?
lukas0987
29.03.2007, 20:27:01
RewriteRule ^photo-([0-9]+).html$ index.php?id=$1&gid=$2
Tutaj ([0-9]+) i dalej tutaj: index.php?id=$1&gid=$2
xian.pl
29.03.2007, 23:07:35
Ja bym napisał to tak:
RewriteEngine On
RewriteRule ^([a-zA-Z]+).html$ index.php?id=$1
RewriteRule ^(\w+(?<!photo))-([0-9]+).html$ index.php?id=$1&mid=$2
RewriteRule ^photo-([0-9]+).html$ index.php?id=photo&gid=$1
RewriteRule ^logowanie.html$ logowanie.php
lukas0987
30.03.2007, 16:12:38
Niestety po wrzuceniu tego co mi napisałeś nie otworzy mi strony głównej.
NIe bardzo wiem jaki tu zabieg wykonałeś i w jakim celu?
kwiateusz
30.03.2007, 16:47:20
RewriteRule ^photo-([0-9]+).html$ index.php?id=$1&gid=$2
na
RewriteRule ^photo-([0-9]+).html$ index.php?id=photo&gid=$1
chodzi o to że wszelkie wyrażenia zwracają wartość w kolejności ich wywołania czyli jak tu masz tylko ([0-9]+) to to zwraca $1 a nie $2
lukas0987
31.03.2007, 20:42:13
Już to rozumiem, bo przecież "photo" to nie zmienna, a "([0-9]+)" to jest zmienna pierwsza. Czyli w moim wypadku gid.
Proste jak drut (tyle że sam to bym chyba przez miesiąc na to nie wpadł smilingsmiley.gif )
Jeszcze mnie jedna rzecz męczy, ale nie wiem czy na to jest rozwiązanie.
^photo-([0-9]+).html$ index.php?id=photo&gid=$1
W moim przypadku jeżeli tylko zmienię znak "-" na "/" to już wszystko się wysypuje. Jakby ktoś miał chwilkę czasui byłby mi w stanie pomóc to z góry wielkie dzięki.
Ja już nie mogę z tym: Przecież tu zaraz oszaleję. Dlaczego jeśli wrzucę coś takiego to news-62.html chodzi,
a photo-17.html nie?
RewriteEngine On
RewriteRule ^([a-zA-Z]+).html$ index.php?id=$1
RewriteRule ^([a-zA-Z]+)-([0-9]+).html$ index.php?id=$1&mid=$2
RewriteRule ^photo-([0-9]+).html$ index.php?id=photo&gid=$1
revyag
31.03.2007, 20:47:31
przenoszę na serwery www
vokiel
31.03.2007, 23:59:04
Może dlatego, że jak używasz "news-62.html" to 'news' to jest wartość jednej zmiennej a '62' drugiej a przy photo - 'photo' nie jest wartością zmiennej, jest nią tylko '17'
wydaje mi się, że te z photo nie jest w ogóle Ci potrzebne możesz przecież używać tego z news:
Kod
RewriteRule ^([a-zA-Z]+)-([0-9]+).html$ index.php?id=$1&mid=$2
i tutaj rób sobie link:
Kod
www.judo.sulkowice.pl/photo-62.html
będziesz miał w zmiennej id = photo; a w mid = 62;
teraz tylko switch w zależności od id i lecisz z tym.. ;-)
RewriteRule ^photo-([0-9]+).html$ index.php?id=$1&gid=$2
daj tą linicjkę przed
RewriteRule ^([a-zA-Z]+)-([0-9]+).html$ index.php?id=$1&mid=$2
lukas0987
1.04.2007, 13:14:36
RewriteEngine On
RewriteRule ^([a-zA-Z]+).html$ index.php?id=$1
RewriteRule ^photo-([0-9]+).html$ index.php?id=photo&gid=$1
RewriteRule ^([a-zA-Z]+)-([0-9]+).html$ index.php?id=$1&mid=$2
RewriteRule ^logowanie.html$ logowanie.php
Ta wersja działa idealnie.
Teraz mam tylko problem z "/"
Chciałbym zamienić sperator zmiennych z "-" na "/"
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.