Autor Zpráva
killer
Profil
Pls kde mám chybu, chci aby ze stránky:

neco.cz/index.php?id=nejaka-stranka

to předělalo na:

neco.cz/nejaka-stranka.html
--------------
kde je chyba??

RewriteEngine On
RewriteRule ^(.*).html$ /index.php?id=$1 [L,QSA]

pořád to předělává na neco.cz/?id=nejaka-stranka
-------
dik
Ok3y
Profil
a zkousel si dat do prohlizece neco.cz/nejaka-stranka.html ?
killer
Profil
jj zkoušel, funguje to, ale funguje i stará adresa
Petr Tichý
Profil
killer
To je v tomto případě normální. Zdá se, že nechápeš mod_rewrite v principu. Buď si něco přečti, nebo jen přepiš všechny odkazy do nového tvaru a zapomeň na to.
Joker
Profil
killer
funguje to, ale funguje i stará adresa
No a? To je správně.
killer
Profil
ale bude duplicitní obsah ne?
Joker
Profil
Jo, mimochodem, ten zápis mod_rewrite dělá přesný opak toho, co je v prvním příspěvku napsáno, tj.
ne "neco.cz/index.php?id=nejaka-stranka mění na neco.cz/nejaka-stranka.html"
ale "neco.cz/nejaka-stranka.html mění na neco.cz/index.php?id=nejaka-stranka"

Obsah duplicitní nebude, pokud všechny adresy budou "po novu", tak se na ten starý nikdo nedostane ;-)
Joker
Profil
Oprava vyjádření: Na ten starý obsah se teda dostane někdo po zadání původní adresy, ale vyhledávače se na něj nedostanou (nebudou mít odkazy), takže to bude jedno.

edit: Existující staré odkazy se dají řešit např. změnou z index.php?id=neco třeba na index.php?page=neco a to staré by přesměrovávalo.
Petr Tichý
Profil
Myslím, že jeden chytrý řádek v .htaccess by mohl všechny staré adresy přesměrovávan 301čkou na nové.
Joker
Profil
Petr Tichý
Myslím, že jeden chytrý řádek v .htaccess by mohl všechny staré adresy přesměrovávan 301čkou na nové.
Akorát je otázka, jestli to neskončí nekonečným cyklem, respektive internal server error.
killer
Profil
Joker když to teda mám opačně, jak je to správně?
Petr Tichý
Profil
Joker
Řekl bych, že jedno z těch písmenek na konci pravidla (v hranatách závorkách) znamená poslední "přesměrování", takže by to snad mělo jít ošetřit.


killer
Nic nedávej opačně. Pravidla máš napsaná správně, jen si se špatně vyjádřil, protože tomu nerozumíš. A já ti znovu říkám, podívej se na http://www.jakpsatweb.cz/server/htaccess.html
Joker
Profil
killer
mod_rewrite je dobře, jen v tom příspěvku je to špatně napsané ;-)

Petr Tichý
Je možné, že to půjde, jen si pamatuju, že se mi povedlo se do podobného problému dostat (vytvoření nekonečného cyklu přesměrování).
Kajman_
Profil *
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^id=([^&]+)$
RewriteRule ^index.php$ %1.html? [R=301,L]
RewriteRule ^([^/]+).html index.php?rw=1&id=$1 [L,QSA]

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: