[Apache, mod_rewrite] reguła do zmieniania linków

0

Witam
Zakladajac ze mam adresy strony w formacie:

http://adres.pl/?id=artykul

(gdzie 'artykul' to poszczegolne artykuly)

Jak bedzie wygladac RewriteRule, aby dzialalo:

http://adres.pl/artykul

i po przeniesiueniu na powyzszy adres, nie bytlo widac adresu ?id= tylko ten zmieniony..

obecna regula jaka wymyslilem to:

RewriteRule ^([^-]+)$ http://adres.pl/?id=$1 [L]
0

a czy przypadkiem to
http://adres.pl/?id=artykul nie jest już w mod_rewrite?

0
SebaZ napisał(a)

a czy przypadkiem to
http://adres.pl/?id=artykul nie jest już w mod_rewrite?

nie, to zwykly switch w PHP

//edt Troche zmodyfikowalem regule, co prawda jest to jakis krok do przodu,ale nadal efekt nie jest zadowalajacy:

RewriteRule ^txt/([^-]+)$ http://adres.pl/?id=$1 [L]

(Przynajmniej teraz dzialaja inne linki (w tym do CSS))

0

no to to powinno smigać

RewriteRule ^([0-9]*)$ ?id=$1

0
SebaZ napisał(a)

no to to powinno smigać

RewriteRule ^([0-9]*)$ ?id=$1

no niezbyt to dziala..
po dopisaniu pelnego adresu do ?id=$1 "dziala"
ale nawet trzeba podawac http://adres.pl/index
(no i powstaje wtedy problem ze stylem, itpo itd)

0

dziwne, nie powinno być potrzeby podawania pełnego adresu, może to ten switch w PHP ? poza tym jak stosujesz mod rewrite to wszystkie generowane dynamicznie linki i powiązania np. z grafiką trzeba dawać bezpośrednio niestety bo adres się zmienia :)

0
SebaZ napisał(a)

dziwne, nie powinno być potrzeby podawania pełnego adresu, może to ten switch w PHP ?

no o niego sie sprawa rozbija..chce go po prostu zamaskowac wprowadzajac bezposrednie adresy http://adres.pl/artykul1 http://adres.pl/artykul2 itp itd

0

może dodanie na końcu reguły jakiejś flagi coś pomoże?

0

ufff doklikalem taka regule:

RewriteRule ^([a-z,0-9]+)$ http://adres.pl/?id=$1 [nc]

i dziala dobrze, jednak nie maskuje urla

0

czyli flaga [nc] była zbawienna :P

// no nie, raczej s/0-9/a-z - lofix

hmmm, juz prędzej [] :P poza tym sugerowałem się, że ID arta zwykle jest liczbą - nie pisałes na poczatku ze ma być www.strona.pl/artykulID tylko chciałeś www.strona.pl/ID a to różnica :)

0

ok temat zamkniety.. :)
dla zainteresowanych

RewriteRule ^([a-z,0-9]+)$ index.php?id=$1

@SebaZ dzieki za podpowiedzi

//dzieki dla pudziana ofkors :)

0

niekoniecznie zamknięty, bo wpiszesz byle co z numerkiem na końcu i bedzie szukało takiego arta :P chyba, że ID nie jest tylko liczbą to wtedy luz... jeśli jednak jest liczbą to
RewriteRule ^artykul([0-9]+)$ index.php?id=$1

1 użytkowników online, w tym zalogowanych: 0, gości: 1