Autor Zpráva
Pa_Tr_Ik
Profil
Dobrý deň,

mám problém ktorý neviem vyriešiť ani za pomoci Googlu. Z dôvodu pekných URL som sa rozhodol použiť na webe mod_rewrite a sám s pomocou rôznych návodov o mod_rewrite sa snažím spraviť ten najideálnejší kód. Chcem docieliť toho aby keď užívateľ zadá domena.sk ho to presmerovalo na www.domena.sk, toto neni problém to zvládnem ale problém nastáva ak užívateľ zadá domena.sk/clanok/nazov-clanku/ a chcem aby ho to presmerovalo na www.domena.sk/clanok/nazov-clanku/ a zároveň podstrčilo stránku www.domena.sk/index.php?get=clanok/nazov-clanku/ , po dlhých experimentoch som zostrojil kód ktorý by mohol fungovať ale pri jeho spustení mi vyhodí chybu 500.

Môj terajší .htaccess
RewriteEngine on

#Ak je doména s www tak podstrčí stránku
RewriteCond %{HTTP_HOST} ^www.domena\.sk [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) ./index.php?get=$1

#Ak doména je bez www tak ju presmeruje na doménu s www a podstrčí stránku
RewriteCond %{HTTP_HOST} ^domena\.sk [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) http://www.domena.sk/index.php?get=$1 [R=301]
RewriteRule (.*) ./index.php?get=$1
#Ak zapíšem 2x pod seba RewriteRule tak vyhodí chybu 500

Vopred ďakujem za Vaše rady a prajem Vám šťastný Nový Rok :)
Yuhů
Profil
RewriteCond může z logiky věci být pod jednou podmínkou jenom jedno. Napřed je potřeba přesměrovat na www, to není přepisování. Potom už je jasné, že požadavek je s www (klient posílá nový požadavek) a tam se potom může vesele podstrkávat. Sorry, jsem na mobilu, nedokážu to psát ani testovat.
Pa_Tr_Ik
Profil
Ďakujem. Ja som to robil tak ako ste to napísali, ale uvedomil som si že to robím zle.

Podobný princíp ale s CHYBOU
RewriteEngine on
 
RewriteCond %{HTTP_HOST} ^www.domena\.sk [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) ./index.php?get=$1
 
RewriteCond %{HTTP_HOST} ^domena\.sk [NC]
RewriteRule (.*) http://www.domena.sk/index.php?get=$1 [R=301]
 
RewriteCond %{HTTP_HOST} ^domena\.sk [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) ./index.php?get=$1
Chybu ste určite uvideli. Chyba je že som presmeroval na www a potom som skúšal či má doména bez www (chyba) namiesto s www.


Kód ktorý mi funguje.
RewriteEngine on

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

RewriteCond %{HTTP_HOST} ^www.domena\.sk [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) ./index.php?get=$1

Ešte raz Vám ďakujem :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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