Autor Zpráva
Lubosh
Profil
Prosím o radu pro vyřešení problému s mod_rewrite.

Přepisuji adresy z:
www.neco.cz/?prvni-stranka,1
na:
www.neco.cz/prvni-stranka,1.html

pomocí .htaccess:
RewriteEngine On
RewriteBase /www/neco/
RewriteCond %{QUERY_STRING} ^([^&]+)$
RewriteRule ^$ %1.html? [R=301,L]
RewriteRule ^([^/]+)\.html ?rw=1&$1 [L,QSA]


To se daří dobře, ale při přechodu na další odkaz z takto otevřené stránky se začne odkaz řetězit:

www.neco.cz/prvni-stranka,1.html?druha-stranka,2

--------------------------------------------------------------------------------------------

Dotaz č 2.

Ještě bych potřeboval vyhodit tu čárku a číslo v odkazu z:

www.neco.cz/?prvni-stranka,1
na:
www.neco.cz/prvni-stranka.html
nebo ještě lépe na:
www.neco.cz/prvni-stranka/

Děkuji za odpovědi. Hledal jsem všude, ale jako lajk nevím jak na to.
Kajman_
Profil *
To se daří dobře, ale při přechodu na další odkaz z takto otevřené stránky se začne odkaz řetězit:

Tak si opravte všude v html kódu odkazy na novou verzi.

A tu ztracenou jedničku k ničemu nepotřebujete?
Lubosh
Profil
Tak si opravte všude v html kódu odkazy na novou verzi:

To mi není jasné. CMS generuje ten odkaz takto: www.neco.cz/?prvni-stranka,1

A tu ztracenou jedničku k ničemu nepotřebujete?

Není mi k ničemu, jedině bych vytvořil dvě stejné stránky:

www.neco.cz/?prvni-stranka,1
www.neco.cz/?prvni-stranka,2
Lubosh
Profil
to www.neco.cz není ten případ, není to moje stránka. Myšleno obrazně: www.nejakastranka.cz samozřejmě.
Kajman_
Profil *
CMS generuje ten odkaz takto: www.neco.cz/?prvni-stranka,1[/i]

Pak by neměl být problém s tím přidáváním parametrů. Podle toho problému jsem spíš myslel, že generuje jen "?prvni-stranka,1".

Musíte si opravit CMS tak, aby generoval takové adresy, které chcete mít.

Takže cms funguje i když tam to číslo není?

Tipuji, že si takovými pokusy spíše naděláte více škody než užitku. Přepisování bez jasné koncepce a podpory této koncepce přímo generátorem stránek není dobrá cesta.
Lubosh
Profil
Oprava: CMS generuje ten odkaz takto: ?prvni-stranka,1


------------------------------------------------------------
Takže cms funguje i když tam to číslo není?

CMS nefunguje když bych zobrazil:

?prvni-stranka

ale při předání na:

RewriteRule prvnistranka.html ?prvnistranka,1 [L,QSA]
je to asi jedno. Nebo ne?
---------------------------------------------------------------

Děkuji za odpovědi, přesto se vyřešení nedostává :-)

Prostě chci jen z odkazu ?prvni-stranka,1 udělat prvnistranka.html

nebo jen

prvnistranka/ - tak aby fungovalo css
Kajman_
Profil *
RewriteRule prvnistranka.html ?prvnistranka,1 [L,QSA]
je to asi jedno. Nebo ne?


No to každou stránku budete tady vyjmenovávat? To je cesta do pekla :-)

Musíte si v první řadě přeprogramovat cms!

Pro přepis čehokoliv, co není skutečný soubor nebo adresář můžete použít obecné pravidlo viz.
http://diskuse.jakpsatweb.cz/.sandbox/?action=vthread&forum=31&topic=97298#1
Lubosh
Profil
No to každou stránku budete tady vyjmenovávat? To je cesta do pekla :-)

nejsem blázen. Chtěl jsem jen aby v tom bylo jasno. Samozřejmě je to:

RewriteRule ^([^/]+)\.html ?rw=1&$1 [L,QSA]
-------------------------------------------------------------------

No nic. Koukám, že mi asi neporadíte jak zastavit to řetězení. Přesto děkuji. :-)
Kajman_
Profil *
jak zastavit to řetězení

generovat odkazy "/www/neco/druha-stranka,2.html " místo "?druha-stranka,2"
Lubosh
Profil
generovat odkazy "/www/neco/druha-stranka,2.html " místo "?druha-stranka,2"

Myslel jsem v .htaccess a ne výstup z toho CMS :-)
Kajman_
Profil *
Tak smazat .htaccess a nebude se to řetězit :-)

Musíte pochopit, že v CMS máte odkazy na ten samý soubor jen s jiným parametrem! Proto se při virtuálně vytvořeném souboru odkazuje na něj a k němu jen přidá další parametr.
Lubosh
Profil
V případě že použiju absolutní výstup tzn.:

http://localhost/web/cms/?prvnistranka,1
a použiju výše zmíněný převod tak vše funguje:

http://localhost/web/cms/prvnistranka,1.html
http://localhost/web/cms/druhastranka,2.html
http://localhost/web/cms/tretistranka,3.html[/b]

.........................................................................

V případě že použiju relativní výstup tzn.:

?prvnistranka,1
a použiju výše zmíněný převod tak to nefunguje:

http://localhost/web/cms/prvnistranka,1.html
http://localhost/web/cms/prvnistranka,1.html?druhastranka,2
http://localhost/web/cms/prvnistranka,1.html?tretistranka,3[/b]


Jak to udělat aniž bych používal absolutní odkaz.?
Lubosh
Profil
Asi nikdo :-(

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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