Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z działaniem mod_rewrite
Forum PHP.pl > Forum > Przedszkole
henio
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
wookieb
Kod
RewriteRule ^news,([0-9]+),(.+?),([0-9]+)\.html$ podstrony/news.php?id_news=$1&tytul=$2&strona=$3
luniak
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
Pilsener
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.
henio
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.