Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z regułką w htaccess
Forum PHP.pl > Forum > PHP
masterix
Witam,

Mam problem z taką regułką:
  1. <?php
  2. RewriteRule ^review.php?op=review&co_ID=([0-9]+) / [R=301,L]
  3. ?>
Ten nawaias tu niepotrzebny, jest on potrzebny w bardziej rozbudowanej wersji tego przekierowania ale tu go zostawiłem.

I ma to dopasować się do:
  1. review.php?op=review&co_ID=2


No i niestety za żadne skarby przekierowanie nie zachodzi. Próbowałem zamienić środkową część na .* ale to nie pomogło. Co jest nie tak?

pzdr.
zukowskp
Kod
RewriteRule ^review.php?op=review&co_ID=([0-9]+) /$1 [R=301,L]


panalem tak bez sensu :S

zamiast ([0-9]+) lepiej (.*)
choc nie do konca rozumiem zasade dzialania tego przekierowania winksmiley.jpg
masterix
To nie działa. A ([0-9]+) musi zostać bo tam musi być liczba.

pzdr.
zukowskp
wcale nie musi byc, (.*) - to jest dowolny ciag znakow jakimi chcemy przypisac zmienne w linku

napisz dokladnie co ma robic to przekierowanie to bedzie latwiej je napisac.

pzdr
masterix
No właśnie .* to dowolny ciąg znaków a po co mam akceptować literki jak chcę liczbę? Zasada ograniczonego zaufania obowiązuje winksmiley.jpg

Chcę zrobić przekierowanie 301 ze starego stylu adresów ( stary skrypt ) na nowe adresy. No i ten konkretny przypadek mi nie działa.

pzdr.
zukowskp
moze tutaj uda Ci sie znalesc odpowiedz:
hxxp://sf.jogger.pl/2007/05/02/mod-rewrite-w-przykladach/
_bolek_
przydalo by sie jak bys podal jaki ma byc wynik dzialania, jesli chcesz wiedziec o co mi chodzi ro prosze:czy klient ma w adresie miec np.:

Kod
http://www.example.pl/1
http://www.example.pl/2


czy tez inaczej questionmark.gif

poza tym ... nie ta kolejnosc wywolan, wpierw podajesz wynik a potem schemat ukrytego wywolania, mysle ze jak wstawisz :

Kod
RewriteEngine on
RewriteRule ^review_([0-9]+)\.htm?$     /review.php?op=review&co_ID=$1   [R=301,L]


w razie czego zmien "\." na "."

takie wywolanie powinno dzialac bez problemu, jak cos to polecam dokumentacje mod_rewrite, a i niezapomnij sprawdzic czy pracujesz na serwerze z apache czy litehttpd bo lite ni obsluguje plikow htaccess :/

przydatne linki:

http://home.pl/pomoc/2358

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Cytat(zukowskp @ 11.07.2008, 16:49:14 ) *
<BR>
Kod
RewriteRule ^review.php?op=review&co_ID=([0-9]+) /$1 [R=301,L]


panalem tak bez sensu :S

zamiast ([0-9]+) lepiej (.*)
choc nie do konca rozumiem zasade dzialania tego przekierowania winksmiley.jpg



wiesz jest jeden manual ktory wyjasnia te roznice (home.pl)


a tak po krutce ro R=301 oznacza tu to samo co R=301 w poleceniu php header czyli przekierowanie w trybie natychmiastowym pod podany dany adres. a L ze rewrite ma ignorowac wszytkie inne wywolania REWRITERULE po nim wystepujace.

poza tym to tak jak bys zapytal jaki jest sens uzywania w preg_much albo eregi wyrazenia ograniczajacego do [0-9] przeciez (.*) tez moze byc ... ale bedzie blednie przetwarzac ciag smile.gif
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.