Autor | Zpráva | ||
---|---|---|---|
mimochodec Profil |
#1 · Zasláno: 17. 4. 2012, 17:49:30
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 |
#2 · Zasláno: 17. 4. 2012, 18:56:49
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 |
#3 · Zasláno: 17. 4. 2012, 19:18:24
Davex:
Vypadá to, že nechuť k htaccessu budu muset nějak překonat a nastudovat. Díky. |
||
Časová prodleva: 8 dní
|
|||
shragicz Profil |
#4 · Zasláno: 25. 4. 2012, 18:57:09
[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 |
#5 · Zasláno: 25. 4. 2012, 19:36:39
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. |
||
Časová prodleva: 12 let
|
0