Autor Zpráva
Pepino
Profil *
Dobrý den celý den se trápim s htaccess.

Chci 2věci přepsat url¨

1) http://yyy/barva?id=39 na http://yyy.cz/barva/id/39

A druhá nahradit id za page takže výsledná adresa by byla http://yyy.cz/barva/page/39

můj kod mi to zaobrazí takle http://yyy.cz/barva?id=39

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

RewriteCond %{REQUEST_FILENAME}.php -f [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]

Moc budu rád když mi někdo poradí googlim furt a nic co by vyřešilo můj problém.

Děkuji
Fisir
Profil
Reaguji na Pepina:
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/barva/page/(.*)$ barva?id=$1 [QSA,L]

Když přejdeš na adresu /barva/page/39, server ji uvidí jako /barva?id=39. (Netestováno.)
Pepino
Profil *
Fisir:
Boužel nefunguje smažu svůj původní kod a když tam vložim todle neudělá to žádnou změnu.
tak se mi adresa zobrazí jak kdyby tam nic nebylo

http://yyy.cz/barva.php?id=39
Davex
Profil
Pepino:
Původně jsi chtěl změnit adresu http://yyy/barva?id=39 na http://yyy.cz/barva/page/39, tak asi nemáš používat adresu s barva.php a v odkazech na webu bys měl používat ty nové adresy.
Pepino
Profil *
Davex:
Já vim já jsem napsal kod co se mi zobrazuje po mim kodu v htaccess. povedlo se mi skryt .php tak jsme chtel neco dos¨psat abych dostal kod do tvaru co potrebuju...
Pepino
Profil *
Pepino:
Ach jo blbě jsem to napsal. Napsal jsem svůj kod a dospěl jsem k výsledku, že se mi zobrazuje url následovně "http://yyy/barva?id=39" A já potřebuju něco tam dopsat aby vypadala url přesně takle http://yyy.cz/barva/page/39.

Děkuji za pomoc
Fisir
Profil
Reaguji na Pepina:
Nejlepší by bylo ty odkazy přepsat. Ale jestli chceš přesměrování…

RewriteRule ^/barva\?id=(.*)$ /barva/page/$1 [R=301,L]

(Opět netestováno.)
Pepino
Profil *
Pepino, Fisir:
Kod bych teda přepsal takto?
RewriteEngine On

RewriteRule ^/barva\?id=(.*)$ /barva/page/$1 [R=301,L]

já zkoušel třeba i todel a taky nic.
RewriteRule ^([0-9]+)(/)?$ %{DOCUMENT_ROOT}/barva.php?id=$1 [L,QSA]
Fisir
Profil
Reaguji na Pepina:
Nechápu. Čeho se snažíš dosáhnout? Aby se adresa při zadání /barva.php?id=39 změnila na /barva/page/39, nebo aby se při zadání /barva/page/39 potají servírovala adresa /barva.php?id=39?
Pepino
Profil *
Snažim se aby se adresa při zadání /barva.php?id=39 změnila na /barva/page/39, a budu štastnej.
Fisir
Profil
Reaguji na Pepina:
A [#7] nefunguje?
Pepino
Profil *
Fisir:
RewriteRule ^/barva\?id=(.*)$ /barva/page/$1 [R=301,L]
Nefunguje :-(


tak mám todle

RewriteRule ^barva/(page)/([0-9]+)$ barva.php?$1=$2 [L]

ale to funguje přesne opačne když zadám http://xxx.cz/barva/id/39 přeměruje mě to na "http://yyy/barva.php?id=39
Davex
Profil
Pepino:
Parametr není součástí cesty, která se vyhodnocuje v RewriteRule, takže se pro získání jeho hodnoty musí před přesměrováním použít podmínka s proměnnou %{QUERY_STRING} nějak takto:

RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{QUERY_STRING} ^id=([^&]+)$
RewriteRule ^barva\.php$ /barva/page/%1? [R=301,L,NE]
Pepino
Profil *
Davex:
Super už mě to přeměruje ale ta stránka se nenčte napíšemi, že neexistuje. Ale dík moc...Kdybys věděl co stim napiš :-)
Davex
Profil
Pepino:
ta stránka se nenčte napíšemi, že neexistuje
Na to se ti snažil poradit už [#2] Fisir, ale průběžně měníš zadání, takže se podle toho musí jeho pravidla upravit.
Pepino
Profil *
Davex:
Neměnim ale asi jsem to blbě napsal. To se omlouvám prosim pomhl by si mi stim jak ten kod bude celej vypadat aby to šlo?
Davex
Profil
Za ta moje pravidla si přidej Fisirova [#2] a poslední řádek změň na

RewriteRule ^barva/page/(.*)$ barva.php?id=$1 [QSA,L]
Pepino
Profil *
Super končně poslední dotaz jak bych udělal aby se mi i u ostatních stánek nezobrazovalo .php...a pak je to vše :-) moc děkuju
Kajman
Profil
Řešení některých častějších problémů (FAQ) » Stránky s adresou bez přípony
pepino
Profil *
Kajman:
Podle toho mi to nefunguje :( Nechápu to.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0