Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem mod_rewrite, Błędna obsługa wyrażeń regularnych?
LapKom
post 15.04.2007, 13:17:05
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 15.04.2007

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


Mam problem z mod_rewrite. Mam konto hostingowe i kilka podpietych domen. Do tego utworzone kilka subdomen na podpietych domenach. Ostatnio napisałem stronke, ale ze wzgledu na długie adresy url potrzebowałem skorzystac z mod_rewrite. Otóż niby działa, przekierowanie bez zarzutu:
Kod
RewriteCond %{HTTP_HOST} ^www.domena.pl$
RewriteRule ^(.*)$ http://domena.pl/ [R=permanent,L]

Serwer niestety mimo podpietych domen do kazdej subdomeny podaje scieżkę dostępu do plików nie jako podpietadomena.pl/plik tylko kontohostingowe.pl/katalogsubdomeny/. Poradziłem sobie z tym, jednak problem polega na obsłudze zmiennych.

Kod
RewriteCond %{HTTP_HOST} ^domena.pl$
RewriteRule ^katalogsubdomeny/(.*),?([^,][0-9]*)?\.html$ /katalogsubdomeny/index.php?page=$1&show=$2 [L]


Adres musi przekazać zmienną 'page', ale zmienna 'show' jest opcjonalna. Adres powinien wygladac 'page.html' lub 'page,show.html'. Kiedy wpisuje pierwszy to wszystko działa bez problemu, w przypadku drugiego wywala mi Error 500 - Internal Server Error. sad.gif
Wydaje mi się, że składnia wyrażeń jest poprawna, a mimo to coś nie działą jak trzeba.

Pomocy!
Go to the top of the page
+Quote Post
Łukasz O.
post 15.04.2007, 13:20:50
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 5
Dołączył: 13.01.2007

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


([^,][0-9]*) powinno być ([^,](.*)*) - inaczej szuka stron w postaci page,cyfryod0do9.html

to tak bez testowania


--------------------
"Don't tell me you want a bridge - show me the canyon you want to cross" Giuseppe Delena
Go to the top of the page
+Quote Post
LapKom
post 15.04.2007, 13:38:42
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 15.04.2007

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


Dzięki, nie wywala juz Internal Error, ale dalej nie działa. sad.gif Przy wpisaniu 'page.htm' przechodzi do wskazanej strony, a w przypadku 'page,1.htm' nie przekazuje do skryptu zadnych zmiennych.

Edit:
Poprawka, jest przypisywana jedna zmienna page = 'page,1' przy wpisaniu 'page,1.html'. Jak rozdzielić te zmienne 'page' i '1'?

Ten post edytował LapKom 15.04.2007, 13:46:49
Go to the top of the page
+Quote Post
Łukasz O.
post 15.04.2007, 13:44:40
Post #4





Grupa: Zarejestrowani
Postów: 191
Pomógł: 5
Dołączył: 13.01.2007

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


pokaż cały plik .htaccess (obstawiam brak flagi QSA)


--------------------
"Don't tell me you want a bridge - show me the canyon you want to cross" Giuseppe Delena
Go to the top of the page
+Quote Post
LapKom
post 15.04.2007, 14:01:59
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 15.04.2007

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


Problem rozwiązany!

Kod
RewriteRule ^katalogsubdomeny/([^/][a-zA-Z]+),?([^,]*)?\.html$ /katolgsubdomeny/index.php?page=$1&show=$2 [NC,L]


Proszę o zamknięcie tematu.

Ten post edytował LapKom 15.04.2007, 14:02:48
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: 27.06.2025 - 10:00