Autor Zpráva
mimochodec
Profil
Na svých webech běžně používám k přesměrování tento zápis:
RewriteRule ^galerie$ %{DOCUMENT_ROOT}/index.php?pg=galerie [L,QSA]

Nemám problém tam vypsat těch asi 5 řádků, které potřebuju - pro každou stránku jeden. Další rozlišení např. výrobků už jde mimo htaccess.
Takže se obejdu bez čehokoliv složitějšího.

Skoro vždy mi to funguje tak, že když přejdu na adresu domena.cz/galerie, otevře se domena.cz/galerie. Někdy (jiný hosting, někdy třeba i stejný hosting, jiná doména) vypíšu adresu, ta se otevře, ale v prohlížeči vidím domena.cz/index.php?pg=galerie. Proč?

Druhá věc:
Myslel jsem, že ^ a $ znamenají okraje řetězce. Ten když je nalezen, dojde k přesměrování. Teď předělávám web, kde byly adresy nějaké, chci je přesměrovat a pomocí 301 dát vědět, že jsou neplatné. Takže jsem zkusil
Redirect 301 ^aj/galerie.html$ %{DOCUMENT_ROOT}/index.php?pg=galerie&lng=en [L,QSA]

a pohořel. Zkusil jsem i variantu s kompletně uvedenou adresou mezi ^ a $. Otvírá mi to adresu *adresawebu*/?lng=en/galerie.html. Proč?
Opět se chci obejít bez regulárů. Jde o čtyři stránky krát dva jazyky, nepotřebuju nic víc než přesný "překlad" jednoznačně uvedených řetězců na jiné. Jak na to? Díky.
Davex
Profil
mimochodec:
Skoro vždy mi to funguje
Divím se, že to vůbec funguje. Pravidlo by mělo být bez proměnné %{DOCUMENT_ROOT}, ale nedokážu odpovědět na otázku, proč se změní adresa.

Takže jsem zkusil Redirect
Redirect není RewriteRule a platí pro něj něco jiného:

1) Cesta se porovnává tak jak je a není to regulární výraz.
2) Na začátku cesty musí být vždy lomítko.
3) Jako cíl přesměrování by se měla uvádět absolutní adresa.
4) Nezná žádné příznaky.

Redirect 301 /aj/galerie.html http://www.example.com/index.php?pg=galerie&lng=en
mimochodec
Profil
Davex:
Vypadá to, že nechuť k htaccessu budu muset nějak překonat a nastudovat. Díky.
shragicz
Profil
[pre]
Ahoj, nechci zakládat nové téma, v podstatě se stejným nadpisem.

mám problém, potřebuji stránku

http://www.neco.cz/index.php presmerovat na http://www.neco.cz/
to stejne napriklad http://www.neco.cz/uvodni-stranka presmerovat na http://www.neco.cz/

pokud použiji RewriteRule ^index.php$ http://www.neco.cz/ [R=301,L] tak se mi rozhodí ostatní odkazy, pokud jsou totiž za index.php nějaké parametry tak se systém chová nekorektně.

například: RewriteRule ^klimatizace-domovni/genius-inverter$ http://%{HTTP_HOST}/index.php?id_stranky=33&sess_web_jazyk=1 [L,QSA]

se po aplikaci výše uvedéno směrování aplikuje jako /?id_stranky=33&sess_web_jazyk=1 [L,QSA] což je špatně, protože potřebuji v systému některé parametry přidávat jako ?xxx=yyy a to tím pádem nelze


snad jsem to popsal nějak srozumitelně.

Díky
Davex
Profil
shragicz:
Ahoj, nechci zakládat nové téma, v podstatě se stejným nadpisem.
Tak si prosím založ vlastní téma s nadpisem, který bude lépe vystihovat tvůj problém. Tvůj popis jsem moc nepochopil, ale usuzuji z něho, že se jedná o něco jiného.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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