Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z działaniem mod_rewrite
henio
post
Post #1





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


No więc w skrócie mówiąc chcę, żeby adres: podstrony/news.php?id_news=1&tytul=jakis_tytul&strona=1 zamienić na news,1,jakis_tytul,1.html

W tym celu w pliku .htaccess utworzyłem następującą linijkę:
Kod
RewriteRule ^news,([0-9]+),(.+),([0-9]+)\.html$ podstrony/news.php?id_news=$1&tytul=$2&strona=$3

Oczywiście mod_rewrite działa, bo np wyżej w pliku mam linijkę bez trzeciej zmiennej i tamta linijka działa bez zarzutu.

Jak w skrypcie dla sprawdzenia chce wypisać echo $_GET['strona'] to wyświetla się 0 nawet gdy jak w adresie jest inna cyfra

po wypisaniu
  1. <?php
  2. print_r($_GET);
  3. ?>

wyswietla sie:
Kod
Array (     [id_news] => 220     [tytul] => arsenal_3-1_plymouth_kanonierzy_awansuja_dalej,1 )

wiec tak jakby system nie rozpoznawal ze zaczyna sie inna zmienna
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod
RewriteRule ^news,([0-9]+),(.+?),([0-9]+)\.html$ podstrony/news.php?id_news=$1&tytul=$2&strona=$3
Go to the top of the page
+Quote Post
luniak
post
Post #3





Grupa: Zarejestrowani
Postów: 171
Pomógł: 36
Dołączył: 12.01.2008
Skąd: Puszcza Mariańska

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


Miałem podobny problem i rozwiązałem go w ten sposób że ten bardziej rozbudowany Rules postawiłem przed tym mniej rozbudowanym i mi działa
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Cytat
Miałem podobny problem i rozwiązałem go w ten sposób że ten bardziej rozbudowany Rules postawiłem przed tym mniej rozbudowanym i mi działa
- tak, ale nie dońca, należy używać flagi [L] i podzielić reguły na "paczki", dopasowując najpierw te z większą liczbą zmiennych:

Kod
RewriteRule ([^-]*),([^-]*),komentarze,strona-([^-]*),([^-]*).html$ $4.php?i=$2&go=kom&a=$3 [L]
RewriteRule ([^-]*),([^-]*),komentarze,strona-([^-]*).html$ ?i=$2&go=kom&a=$3 [L]

RewriteRule ([^-]*),([^-]*),([^-]*).html$ $3.php?i=$2 [L]
RewriteRule ([^-]*),([^-]*).html$ ?i=$2 [L]


A w ogóle najlepiej wrzucać cały adres do jednej zmiennej $_GET i obrabiać przy pomocy PHP - jest elastyczniej, wygodniej i szybciej. Jak widzę kilkaset reguł w htaccess i mam przerobić taki serwis to dostaję torsji.
Go to the top of the page
+Quote Post
henio
post
Post #5





Grupa: Zarejestrowani
Postów: 237
Pomógł: 1
Dołączył: 15.10.2004
Skąd: Lublin

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


Cytat(Pilsener @ 11.02.2009, 14:32:29 ) *
- tak, ale nie dońca, należy używać flagi [L] i podzielić reguły na "paczki", dopasowując najpierw te z większą liczbą zmiennych:

Kod
RewriteRule ([^-]*),([^-]*),komentarze,strona-([^-]*),([^-]*).html$ $4.php?i=$2&go=kom&a=$3 [L]
RewriteRule ([^-]*),([^-]*),komentarze,strona-([^-]*).html$ ?i=$2&go=kom&a=$3 [L]

RewriteRule ([^-]*),([^-]*),([^-]*).html$ $3.php?i=$2 [L]
RewriteRule ([^-]*),([^-]*).html$ ?i=$2 [L]


A w ogóle najlepiej wrzucać cały adres do jednej zmiennej $_GET i obrabiać przy pomocy PHP - jest elastyczniej, wygodniej i szybciej. Jak widzę kilkaset reguł w htaccess i mam przerobić taki serwis to dostaję torsji.


Ja się już przyzwyczaiłem, choć w nowej wersji serwisu pomyślę nad tym. Już działa
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 06:00