Autor Zpráva
rada_losik
Profil
Zdravim;)
vím že toto téma se tady probíra hodněkrát ale mám problém. Napsal jsem jen do .htaccess:
RewriteEngine On


A webzdarma mi hlásí že je špatně nastavený .htaccess.

Může být chyba jen v tom že jsem rewrite jen zapl bez jakýkoliv "pravidel"?

A nevíte prosím jak nastavit rewrite abych mel z:
?nazev=nazev clanku&id=id

Toto:
/nazev clanku.html

Jde to nejak?
Yuhů
Profil
Nevím, jestli je potřeba mít nějaká pravidla.

Jak nastavit z ?nazev=nazev clanku&id=id na /nazev clanku.html je složitější věc.
Zkus se podívat na první příklad
http://www.jakpsatweb.cz/server/mod_rewrite/mod-rewrite-priklady.html# dyntostat
blizzard
Profil
Pouze zapnute RewriteEngine na On by zadnou chybu hazet nemelo..., nicmene nikde nema Webzdarma napsane ze .htaccess podporuje.
rada_losik
Profil
Pořád mi hlásí:
Při zpracování požadavku došlo k chybě. Příčinou je zřejmě špatné nastavení v souboru .htaccess

Zkopíroval jsem tam tento kód:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^page=([^&]+)$
RewriteRule ^recenze\.php$ %1.html? [R=301,L]
RewriteRule ^([^/]+)\.html recenze.php?nazev=1&film=$1 [L,QSA]


Tučně jsem zvíraznil části které jsem upravil pro můj web
Yuhů
Profil
> A webzdarma mi hlásí že je špatně nastavený .htaccess.

co přesně to prosím hlásí?
rada_losik
Profil
Při zpracování požadavku došlo k chybě. Příčinou je zřejmě špatné nastavení v souboru .htaccess

Toto jsem zkopíroval z WZ
Flexa
Profil *
Aby fungovalo to pravidlo, co máš o dva příspěvky výš, tak by asi taky bylo dobré si upravit i řádek s RewriteCond. A vlastně i první RewriteRule. Třeba nějak takhle...


RewriteCond %{QUERY_STRING} ^recenze=([^&]+)&film=([^&]+)$
RewriteRule ^index\.php$ recenze-%1/film-%2.html? [R=301,L]
RewriteRule ^recenze-([^/]+)/film-([^/]+)\.html index.php?rw=1&recenze=$1&film=$2 [L,QSA]


Tak mi to alespoň funguje na localhostu. A mimochodem, když jsem ještě byl u wz tak jsem se tam někde dočetl, že .htaccess podporují a můžu to i potvrdit vlastním používáním. Jen je otázka, jestli je tam povolený i mod_rewrite, protože s tím jsem tehdy ještě nic nezkoušel, ale předpokládám, že povolený spíš bude...
Kajman_
Profil *
Původní požadavek by mohl být takto...

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^nazev=([^&]+)&id=([^&]+)$
RewriteRule ^recenze\.php$ %1.html? [R=301,L]
RewriteRule ^([^/]+)\.html$ recenze.php?rw=1&nazev=$1 [L,QSA]

Jen se tam ale ztratí to id a recenze.php musí umět najít správný článek jen z toho názvu. Pokud to neumí, tak bude třeba to číslo někam v adrese dát, nebo to do recenze doprogramovat.

Jo, a pro testování bývá lepší použít 302 a až po odladění 301.
petr8
Profil *
RewriteCond %{QUERY_STRING} ^recenze=([^&]+)&film=([^&]+)$
RewriteRule ^index\.php$ recenze-%1/film-%2.html? [R=301,L]
RewriteRule ^recenze-([^/]+)/film-([^/]+)\.html index.php?rw=1&recenze=$1&film=$2 [L,QSA]



tohle mi funguje ale když kliknu podruhe na ten stejny odkaz tak už to nefunguje
petr8
Profil *


Zasláno: 6.2.2006 22:50:20
Citovat


RewriteCond %{QUERY_STRING} ^recenze=([^&]+)&film=([^&]+)$
RewriteRule ^index\.php$ recenze-%1/film-%2.html? [R=301,L]
RewriteRule ^recenze-([^/]+)/film-([^/]+)\.html index.php?rw=1&recenze=$1&film=$2 [L,QSA]


tohle mi funguje ale když kliknu podruhe na ten stejny odkaz tak už to nefunguje


Stránka po kliknutí na odkaz "zůstane v adresáři "recenze" a po druhém kliknutí místo index.php/recenze/film se objeví recenze/index.php/recenze/film

????
Kajman_
Profil *
Proto v tom příkladě bylo i

RewriteBase /
Petr8
Profil *
Proto v tom příkladě bylo i

RewriteBase /


I s RewriteBase / mi to znovu opakuje...???
Kajman_
Profil *
A odkazy jsou správně? S absolutní cestou?
Petr8
Profil *
Odkazy jsou správně..když použiju např.

index.php?film=nejakyfilm na ../nejakyfilm.html --> pak je vše v pořádku, když ale použiju

index.php?film=nejakyfilm na ../nejakyfilm/ --> pak to na druhe kliknuti dela problem a to stejny s nasl. odkazem

index.php?film=nejakyfilm&kategorie=nejakakategorie --> ../nejakyfilm/nejakakategorie/ ... blbne mi tam lomitko a nevím jak to ošetřit ???

Myslím, že problém bude v tom lomítku, protože jakmile použiju jeden argument, kde místo lomítka použiju na konci třeba ".html" ale i jakýkoliv jiný text bez lomítka třeba ../nejakyfilm- ...tak to funguje
Kajman_
Profil *
ndex.php?film=nejakyfilm na ../nejakyfilm/ --> pak to na druhe kliknuti dela problem a to stejny s nasl. odkazem

A nemá být ten odkaz na /index.php a ne index.php?

Možná by bylo rychlejší, kdyby jste zde ten výtvor odkázal.
petr8
Profil *
nerozumím, odkaz je:

www.nejakastranka.cz/index.php?film=nejakyfilm

na

www.nejakastranka.cz/nejakyfilm/ ...to mi nefunguje (po prvnim kliknuti na odkaz "nejaky film" to funguje, po druhem kliknuti na ten stejny odkaz se zobrazi "www.nejakastranka.cz/index.php?=nejakyfilm")

www.nejakastranka.cz/nejakyfilm.hml (nebo misto ".html" jakykoliv jiny text krome lomitka) ...to funguje
Kajman_
Profil *
Asi se nedohodneme, každý znás má nejspíše jiný význam pro slovo odkaz. Možná se pletu, ale na 97% jsou špatně odkazy v html - tedy nejsou připravené na novou virtuální cestu.
Tomáš Domanik
Profil
mozes vyskusat jednoduchy mod_rewrite

obsah .htaccess
--------
RewriteEngine On
RewriteCond %{HTTP_HOST} domena\.sk
RewriteRule ^clanky/(.*)/(.*).htm$ http://www.domena.sk/recenze.php?id=$1&nazev_clanku=$2 [R=301,P]
------
nejedna sa o cely subor .htaccess ale mal by fungovat

potom staci zavolat napr [url=http://www.domena.sk/clanky/ID_CLANKU/NAZEV_CLANKU.htm
]http://www.domena.sk/clanky/ID_CLANKU/NAZEV_CLANKU.htm
[/url]

btw sice mod_rewrite nieje moja silna stranka ale parameter "L" urcuje posledne pravidlo teda mal by sa vyskytovat iba raz

S pozdravom a prianim pekneho zbytku dna
Tomas Domanik
Toto téma je uzamčeno. Odpověď nelze zaslat.