Autor | Zpráva | ||
---|---|---|---|
Rostislav Doležal Profil |
#1 · Zasláno: 8. 8. 2012, 10:02:38
Dobrý den,
najde se někdo, kdo mi pomůže vyřešit záhadu v .htaccess, ze které už jsem docela zoufalej? Problém je takový, že mám odkaz ve tvaru : <a href="norma/neco1/neco2/neco3">LINK</a> A v .htacces už mám podmínku, která by mě měla přepsat link na formu eshop.mojedomena.com/norma-neco1-neco2-neco3.html problém je ten, že se mi stále ukazuje v adrese otazník, takže to vypadá takto eshop.mojedomena.com/?norma-neco1-neco2-neco3.html Zde je .htaccess kód: RewriteEngine On RewriteBase / RewriteRule ^/?index.php / [R=301,L] RewriteRule ^norma/([^/]+)/([^/]+)/([\d\.]+)$ /index.php?norma-$1-$2-$3.html [L,QSA] |
||
Kajman Profil |
#2 · Zasláno: 8. 8. 2012, 10:06:26
Přidejte si podmínku u přesměrování, aby se prováděla jen pokud už to není vnitřně přepsané.
RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteRule ^/?index.php / [R=301,L] PS. Vzhledem ke kódu 301 si může prohlížeč či proxy nějakou dobu pamatovat původní chování. |
||
Rostislav Doležal Profil |
#3 · Zasláno: 8. 8. 2012, 10:10:02
Když přidám podmínku, kterou jste mi napsal, tak se odkaz zobrazuje ještě hůř a to :
eshop.mojedomena.com/norma/neco1/neco2/neco3 Potřebuji, aby se ten link přepsal pak na eshop.mojedomena.com/norma-neco1-neco2-neco3.html |
||
Kajman Profil |
#4 · Zasláno: 8. 8. 2012, 10:34:16
S původním kódem se to chová tak, že se adresa
/norma/neco1/neco2/neco3 /index.php?norma-neco1-neco2-neco3.html /?norma-neco1-neco2-neco3.html Pokud nechcete vnitřní přepis na index.php, tak jednoduše upravte druhé pravidlo na to přesměrování RewriteRule ^norma/([^/]+)/([^/]+)/([\d\.]+)$ /norma-$1-$2-$3.html [L,R] |
||
Rostislav Doležal Profil |
#5 · Zasláno: 8. 8. 2012, 10:41:22
Když odstraním index.php a bude to vypadat takto :
RewriteRule ^norma/([^/]+)/([^/]+)/([\d\.]+)$ /norma-$1-$2-$3.html [L,R] |
||
Kajman Profil |
#6 · Zasláno: 8. 8. 2012, 11:08:44
Víte, nejdůležitější je stanovit si, jak se ty adresy mají přesně chovat. To za Vás žádná pravidla neudělají.
Pokud ještě chcete přepsat norma-cokoliv.html na index.php, tak zkuste přidat. RewriteRule ^norma-.*.html$ /index.php?$0 [L,QSA] |
||
Rostislav Doležal Profil |
#7 · Zasláno: 8. 8. 2012, 11:17:11
Chovat se mají takto:
Prezentace odkazu -> <a href="norma/neco1/neco2/neco3">LINK</a>
Když přijde odkaz ve tvaru eshop.mojedomena.com/norma/neco1/neco2/neco3 tak aby se předělal na eshop.mojedomena.com/norma-neco1-neco2-neco3.html ale ještě k tomu, aby se vykonal index.php, který v sobě má už php funkci explode a rozebírá odkaz na určité proměnné Podařilo se mi to vyřešit pouze do fáze, kdy odkaz vypadal takto: eshop.mojedomena.com/?norma-neco1-neco2-neco3.html ale potřebuji se zbavit toho otazníku, který mi tam docela vadí :( |
||
Kajman Profil |
#8 · Zasláno: 8. 8. 2012, 14:20:49
|
||
Mouse7777777 Profil * |
#9 · Zasláno: 9. 8. 2012, 22:12:39
Ať dělám co dělám, prostě se mi nedaří, nemohl by si mi prosím to nějak napsat dohromady, jak by to mělo vypadat.
Nebo napsat uplně jinak, když potřebuji z odkazu /norma/neco1/neco2/neco3 , aby se provedl index.php a ještě k tomu to v adrese zobrazilo /norma-neco1-neco2-neco3 právě bez toho otazníku a index.php Předem díky |
||
Kajman Profil |
#10 · Zasláno: 10. 8. 2012, 09:39:22
A má tam být ta .html koncovka nebo ne? Pokud ne, tak si pravidla upravte. Nezaručuji, ale mělo by stačit něco takového...
RewriteEngine On RewriteBase / RewriteRule ^norma/([^/]+)/([^/]+)/([\d\.]+)$ norma-$1-$2-$3.html [L,R,NE] RewriteRule ^(norma-.*\.html)$ index.php?$1 [L,QSA] Případně si zapněte rewritelog a prozkoumejte chování, pokud to bude zlobit nadále. |
||
Časová prodleva: 12 let
|
0