Autor Zpráva
Erixx
Profil
Dobrý den,
mám toto řešení přesměrování url adresy webu tvaru neco.cz na www.neco.cz/cs.

RewriteEngine On

RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$ "http://www.%1/cs/$1" [L,R=301]

Přesměrování však je funkční pouze pokud uživatel zadá adresu bez www (neco.cz), nikoli, pokud zadá adresu s www (www.neco.cz)- tam se "/cs" již nepodstrčí.
Nevíte někdo, jak na to?
Případně jak přesměrovat na URL adresu www.neco.cz/cs, pokud uživatel zadá jakoukoli adresu webu bez "/cs"?

Díky
djlj
Profil
Však tam máš podmínku
RewriteCond %{HTTP_HOST} !^www\. [NC]
že se to nebude provádět, pokud adresa začíná www. Tak ji musíš oddělat.
Erixx
Profil
djlj:
Pokud vyhodím tu podmínku jak říkáš, tj nechám tento tvar
RewriteEngine On

RewriteCond %{HTTP_HOST} !^$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$ "http://www.%1/cs/$1" [L,R=301]

cyklý se 'www' a 'cs'.

Už jsem zkusil spoustu možností, ale nemohu přijít na to, jak dostat /cs/ za url, pokud uživatel zadá tvar s www,
tj. přesměrovat
neco.cz nebo www.neco.cz na tvar www.neco.cz/cs/
casy
Profil
Erixx:
Zkus tohle

####### Redirect na verzi domény s www ######
RewriteEngine on
RewriteCond %{HTTP_HOST} ^neco.cz
RewriteRule (.*) http://www.neco.cz/$1 [R=301,QSA,L]
Erixx
Profil
casy:
Toto řešení znám, nicméně neřeší můj problém,tj. přesměruje pouze zadání do URL neco.cz na www.neco.cz/cs/,
nikoli však zadání do URL www.neco.cz - vyhodí pouze totožné www.neco.cz bez /cs/
RewriteEngine on
RewriteCond %{HTTP_HOST} ^neco.cz
RewriteRule (.*) http://www.neco.cz/cs/$1 [R=301,QSA,L]
casy
Profil
Erixx:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^neco.cz
RewriteRule (.*) http://www.neco.cz/cs/$1 [R=301,QSA,L]


RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.neco.cz
RewriteRule (.*) http://www.neco.cz/cs/$1 [R=301,QSA,L]


A tohle by nešlo ?


Nejde to... zacyklí se to ...
Kajman
Profil
RewriteEngine on

RewriteRule !^cs/ http://www.neco.cz/cs/$0 [R=301,QSA,L]

RewriteCond %{HTTP_HOST} ^neco\.cz$
RewriteRule ^(.*)$ http://www.neco.cz/$1 [R=301,QSA,L]

A pro testování je lepší ladit s 302.
casy
Profil
Kajman:
Perfektní, teď jsem to vyzkoušel a funguje to.
Erixx
Profil
Kajman:

Mně to vypisuje v URL takovýto tvar
http://www.neco.cz/cs/?url=cs

a píše chybu Smyčka při přesměrování :(
casy
Profil
Erixx:

Tohle už nebude chyba .htaccess, ale v php nebo v jazyku, kterým voláš hlavní stranu.
Erixx
Profil
Prozatím jsem to ted vyřešil tak, že jsem odstranil z hlavní strany z URL to /cs/ s podmínkou, že pokud se zavolá na hlavní stranu tvarem neco.cz nebo www.neco.cz, automaticky se načte jazyk cs.
Na dalších stranách už budou url generovány s /cs/ atd dle $_GET[lang]

Jinak Vám všem děkuju za pomoc.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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