Získej svůj iPhone v nové soutěži! Získej svůj iPhone v nové soutěži!
Nová překladatelská soutěž ITnetwork.cz o telefon iPhone, sluchátka Beats a další věcné ceny za 4 hodiny práce.
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Miroslav Tomašovič:5. prosince 9:33

Dobrý deň páni,

mám web s výrobkami, ktorý prepisuje dynamické adresy typu "domena.sk/in­dex.php?act=vi­ewProd&produc­tId=46190" na statické "domena.sk/moj-nazov-vyrobku/prod_4619­0.html" prostredníctvom tohto kódu v .htaccess:

RewriteEngine On
RewriteCond %{QUERY_STRING} (.+)
RewriteRule prod_(.*).html index.php?act=viewProd&productId=$1&%1 [L]
RewriteRule prod_(.*).html index.php?act=viewProd&productId=$1 [L]

V rámci prechodu na SSL certifikát potrebujem zmeniť http protokol na https, čo robím podľa odporúčania poskytovateľa webhostingu pomocou nasledujúceho kódu v súbore .htaccess:

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

Bohužiaľ, akonáhle pridám do súboru tento kód, web síce funguje v https, ale nedochádza k prepisu dynamických adries na statické. Je pritom jedno, či kód umiestnim na začiatok, alebo koniec súboru .htaccess.

Neviete, v čom môže byť problém?

Ďakujem.

 
Odpovědět 5. prosince 9:33
Avatar
martin.93
Člen
Avatar
Odpovídá na Miroslav Tomašovič
martin.93:5. prosince 14:52

Zkus tenhle třeba ti to pomůže

RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Editováno 5. prosince 14:54
 
Nahoru Odpovědět 5. prosince 14:52
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:5. prosince 15:36

Různé servery (tedy spíš hostingy) mají různé prostředky pro vyjádření, jestli je to HTTPS požadavek, nebo ne. Kde to běží?

Nahoru Odpovědět 5. prosince 15:36
Why so serious? -Joker
Avatar
Odpovídá na martin.93
Miroslav Tomašovič:5. prosince 16:33

martin.93:
Ďakujem, skúsil som a správa sa to stále rovnako. :-S
Teda https beží správne, ale prepis dynamickej url na statickú nejde.

 
Nahoru Odpovědět 5. prosince 16:33
Avatar
Odpovídá na Petr Čech
Miroslav Tomašovič:5. prosince 16:41

Mám to na Websupporte, postupoval som podľa ich návodu (bod 2. a) ):
https://www.websupport.sk/…ifik%C3%A1tu

Čiže keď to zhrniem, ak web beží na http, prepis dynamických url na statické funguje správne.
Akonáhle doplním kód so zmenou na https, stránka beží na https, ale zmena dynamických url na statické prestane fungovať :-S

 
Nahoru Odpovědět 5. prosince 16:41
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Miroslav Tomašovič
Jiří Gracík:5. prosince 20:44

Jak vypadá celý htaccess (nebo alespoň naše https a rewrite část, pokud je zbytek tajný)?

Nahoru Odpovědět 5. prosince 20:44
Creating websites is awesome till you see the result in another browser ...
Avatar
Bogdan
Redaktor
Avatar
Bogdan:5. prosince 22:11

mozna to prehodit misty? nejdriv https potom prepis? jen tak me to napadlo :D

 
Nahoru Odpovědět 5. prosince 22:11
Avatar
Odpovídá na Jiří Gracík
Miroslav Tomašovič:6. prosince 9:12

Toto je celý .htaccess:

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

RewriteEngine On
RewriteCond %{QUERY_STRING} (.+)
RewriteRule cat_(.*).html index.php?act=viewCat&catId=$1&%1 [L]
RewriteRule cat_(.*).html index.php?act=viewCat&catId=$1 [L]
RewriteCond %{QUERY_STRING} (.+)
RewriteRule prod_(.*).html index.php?act=viewProd&productId=$1&%1 [L]
RewriteRule prod_(.*).html index.php?act=viewProd&productId=$1 [L]
RewriteCond %{QUERY_STRING} (.+)
RewriteRule info_(.*).html index.php?act=viewDoc&docId=$1&%1 [L]
RewriteRule info_(.*).html index.php?act=viewDoc&docId=$1 [L]
RewriteCond %{QUERY_STRING} (.+)
RewriteRule tell_(.*).html index.php?act=taf&productId=$1&%1 [L]
RewriteRule tell_(.*).html index.php?act=taf&productId=$1 [L]
 
Nahoru Odpovědět 6. prosince 9:12
Avatar
Odpovídá na Bogdan
Miroslav Tomašovič:6. prosince 9:13

Skúšal som to prehodiť a vôbec to nezaberá. Slále sa to správa rovnako :-@

 
Nahoru Odpovědět 6. prosince 9:13
Avatar
Bogdan
Redaktor
Avatar
Odpovídá na Miroslav Tomašovič
Bogdan:6. prosince 14:53

Zkus odebrat 1x RewriteEngine On(to druhe)

Editováno 6. prosince 14:54
 
Nahoru Odpovědět 6. prosince 14:53
Avatar
Odpovídá na Bogdan
Miroslav Tomašovič:6. prosince 19:45

Skúsil som a nepomohlo :-S

Editováno 6. prosince 19:46
 
Nahoru Odpovědět 6. prosince 19:45
Avatar
Miroslav Tomašovič:7. prosince 9:24

Tak vás všetkých zdravím páni.
Nakoniec som sa rozhodol pátrať v PHP kóde môjho webu a v súbore nazvanom xtpl.php som narazil na tento kód:

/* <rf> search engine friendly mod */
global $glob, $config;
include_once($glob['rootDir']."/includes/sef_urls.inc.php");

$copy = $this->text($bname);
if(!detectSSL()) {
        $copy = sef_rewrite_urls($copy);
}

echo $copy;
/* <rf> end mod */

Jednoducho som zmenil zápornú podmienku na kladnú:

if(detectSSL()) {

A ono to funguje.

Takže nakoniec problém nebol v samotnom .htaccess.
Viem, že moje riešenie je amatérske v rámci mojich veľmi obmedzených znalostí PHP, ale zatiaľ funguje.

Tak idem skúšať ďalej, či je všetko OK.

Ďakujem vám všetkým za pomoc ;-)

 
Nahoru Odpovědět 7. prosince 9:24
Avatar
Miroslav Tomašovič:9. prosince 15:31

Ešte ma predsa len napadla jedna vec.
Kvôli zamedzeniu duplicity som celý web presmeroval na verziu s www týmto kódom:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domena.sk [NC]
RewriteRule ^(.*)$ http://www.domena.sk/$1 [L,R=301]

Jednu url však potrebujem mať bez www, konkrétne: "https://dome­na.sk/cart.php?ac­t=step4"

Neviete prosím, ako to spraviť v .htaccess?

Ďakujem.

Editováno 9. prosince 15:32
 
Nahoru Odpovědět 9. prosince 15:31
Avatar
Bogdan
Redaktor
Avatar
Bogdan:9. prosince 16:13

Proč přesměrovávat na www a né na verzi bez www? Měl jsem vždy problémy s www verzi(např. cloudflare a https)

 
Nahoru Odpovědět 9. prosince 16:13
Avatar
Odpovídá na Bogdan
Miroslav Tomašovič:9. prosince 17:31

Ahoj, úprimne sám neviem. Prečítal som si veľa článkov čo je lepšie z pohľadu SEO a niektoré preferovali verziu s www kvôli tomu, že väčšina ľudí je jednoducho na to zvyknutá. Keď som si spravil analýzu najznámejších zahraničných a domácich webov, takmer všetky sú s www (amazon, facebook, alza, mall, wikipedia, ebay, aliexpress, paypal atď.). To je môj jediný dôvod.

 
Nahoru Odpovědět 9. prosince 17:31
Avatar
Marek Z.
Redaktor
Avatar
Marek Z.:9. prosince 18:33

Z hlediska SEO mezi oběma variantami není žádný rozdíl, jde pouze o to co preferuje webmaster.

Z technického hlediska pro www je lepší práce s cookinami kvůli případným subdoménám, apod..

Z praktického/u­živatelského hlediska většina lidí preferuje bez www kvůli zapamatovatelnosti.

Nahoru Odpovědět  +1 9. prosince 18:33
Chybami se člověk učí, běžte se učit jinam!
Avatar
Miroslav Tomašovič:10. prosince 18:58

OK páni a keď sa teda vrátim k .htaccess, je možné celý web presmerovať na www a len jednu konkrétnu url bez www?

 
Nahoru Odpovědět 10. prosince 18:58
Avatar
Jiří Gracík
Redaktor
Avatar
Jiří Gracík:10. prosince 20:25

Přidat rewrite condition
RewriteCond %{HTTP_HOST} !^domena.sk [NC]

Nahoru Odpovědět 10. prosince 20:25
Creating websites is awesome till you see the result in another browser ...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.