Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mod_rewrite - nie działa prawidłowo, .htaccess, index.php?, przekzaywanie 2 zmiennych
lukas0987
post 29.03.2007, 19:04:47
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 13.04.2006

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


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
Go to the top of the page
+Quote Post
starach
post 29.03.2007, 19:11:08
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Eee a gdzie ty niby przekazujesz tą drugą zmienną którą ma być gid ?
Go to the top of the page
+Quote Post
lukas0987
post 29.03.2007, 20:27:01
Post #3





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 13.04.2006

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


RewriteRule ^photo-([0-9]+).html$ index.php?id=$1&gid=$2

Tutaj ([0-9]+) i dalej tutaj: index.php?id=$1&gid=$2

Ten post edytował lukas0987 29.03.2007, 20:27:39
Go to the top of the page
+Quote Post
xian.pl
post 29.03.2007, 23:07:35
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 28.03.2007
Skąd: Zielona Góra

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


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


--------------------
Go to the top of the page
+Quote Post
lukas0987
post 30.03.2007, 16:12:38
Post #5





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 13.04.2006

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


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?
Go to the top of the page
+Quote Post
kwiateusz
post 30.03.2007, 16:47:20
Post #6


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




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
Go to the top of the page
+Quote Post
lukas0987
post 31.03.2007, 20:42:13
Post #7





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 13.04.2006

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


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
Go to the top of the page
+Quote Post
revyag
post 31.03.2007, 20:47:31
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


przenoszę na serwery www


--------------------
-------------

------
Go to the top of the page
+Quote Post
vokiel
post 31.03.2007, 23:59:04
Post #9





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


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.. ;-)


--------------------
Go to the top of the page
+Quote Post
sf
post 1.04.2007, 08:11:55
Post #10





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


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


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
lukas0987
post 1.04.2007, 13:14:36
Post #11





Grupa: Zarejestrowani
Postów: 64
Pomógł: 0
Dołączył: 13.04.2006

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


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 "/"

Ten post edytował lukas0987 1.04.2007, 13:33:22
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: 21.06.2025 - 11:56