rewrite
rewrite
mám
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?clanok=$1 [L,QSA]
ktorý mi robí to že ked zadám web.sk/web == web.sk/index.php?clanok=web
a potrebujem ho upraviť aby keď zadám en.web.sk/web == web.sk/index.php?clanok=web&preklad=en...
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?clanok=$1 [L,QSA]
ktorý mi robí to že ked zadám web.sk/web == web.sk/index.php?clanok=web
a potrebujem ho upraviť aby keď zadám en.web.sk/web == web.sk/index.php?clanok=web&preklad=en...
Toto bude fungovať iba pre en (ak to nebude stačiť, môžem sa skúsiť poztrieť na to, ako by sa to dalo urobiť univerzálnejšie).
// chrono: vlastne to môže byť jednoduchšie
Kód: Vybrať všetko
RewriteEngine On
RewriteCond %{SERVER_NAME} ^en\..*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?clanok=$1&preklad=en [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?clanok=$1 [L,QSA]Kód: Vybrať všetko
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?clanok=$1 [L,QSA]
RewriteCond %{SERVER_NAME} ^en\..*
RewriteRule ^(.*)$ $1?preklad=en [L,QSA]Urob php súbor:daj ho do oboch subdomén, a výpis sem vlož. (ja som totiž nerátal s tým, že aj pre en. máš subdoménu)
Kód: Vybrať všetko
<?php
print_r($_SERVER);
?>dnw.sk
en.dnw.sk
Kód: Vybrať všetko
Array ( [UNIQUE_ID] => TbXiIlZu4fcAALhKvJMAAAA@ [HTTP_HOST] => dnw.sk [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.2; sk; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 [HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 [HTTP_ACCEPT_LANGUAGE] => sk,cs;q=0.8,en-us;q=0.5,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7 [HTTP_KEEP_ALIVE] => 300 [HTTP_CONNECTION] => keep-alive [PATH] => .:.:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/home/davidisko/bin [SERVER_SIGNATURE] =>
Apache/2.2.4 (FreeBSD) mod_ssl/2.2.4 OpenSSL/0.9.7m PHP/4.4.6 with Suhosin-Patch Server at dnw.sk Port 80
[SERVER_SOFTWARE] => Apache/2.2.4 (FreeBSD) mod_ssl/2.2.4 OpenSSL/0.9.7m PHP/4.4.6 with Suhosin-Patch [SERVER_NAME] => dnw.sk [SERVER_ADDR] => 86.110.225.247 [SERVER_PORT] => 80 [REMOTE_ADDR] => 91.127.45.228 [DOCUMENT_ROOT] => /webhosting/upnito.sk/ [SERVER_ADMIN] => [email protected] [SCRIPT_FILENAME] => /webhosting/dnw.sk/dbl.php [REMOTE_PORT] => 1200 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /dbl.php [SCRIPT_NAME] => /dbl.php [PHP_SELF] => /dbl.php [PATH_TRANSLATED] => /webhosting/dnw.sk/dbl.php [argv] => Array ( ) [argc] => 0 )Kód: Vybrať všetko
Array ( [UNIQUE_ID] => UUS1uVZu4fcAALhTzlQAAAAA [HTTP_HOST] => en.dnw.sk [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.2; sk; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 [HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 [HTTP_ACCEPT_LANGUAGE] => sk,cs;q=0.8,en-us;q=0.5,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7 [HTTP_KEEP_ALIVE] => 300 [HTTP_CONNECTION] => keep-alive [PATH] => .:.:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/home/davidisko/bin [SERVER_SIGNATURE] =>
Apache/2.2.4 (FreeBSD) mod_ssl/2.2.4 OpenSSL/0.9.7m PHP/4.4.6 with Suhosin-Patch Server at en.dnw.sk Port 80
[SERVER_SOFTWARE] => Apache/2.2.4 (FreeBSD) mod_ssl/2.2.4 OpenSSL/0.9.7m PHP/4.4.6 with Suhosin-Patch [SERVER_NAME] => en.dnw.sk [SERVER_ADDR] => 86.110.225.247 [SERVER_PORT] => 80 [REMOTE_ADDR] => 91.127.45.228 [DOCUMENT_ROOT] => /webhosting/upnito.sk/ [SERVER_ADMIN] => [email protected] [SCRIPT_FILENAME] => /webhosting/dnw.sk/subdomains/en/dbl.php [REMOTE_PORT] => 1213 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => preklad=en [REQUEST_URI] => /dbl.php [SCRIPT_NAME] => /dbl.php [PHP_SELF] => /dbl.php [PATH_TRANSLATED] => /webhosting/dnw.sk/subdomains/en/dbl.php [argv] => Array ( [0] => preklad=en ) [argc] => 1 )ono nejde to vobec pri subdomene..asi viem kde je chyba...asi nenajde subor index.php
takto som to zmenil:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://dnw.sk/index.php?clanok=$1 [L,QSA]
RewriteCond %{SERVER_NAME} ^en\..*
RewriteRule ^(.*)$ $1?preklad=en [L,QSA]
ale robi to problem ... vid en.dnw.sk
takto som to zmenil:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://dnw.sk/index.php?clanok=$1 [L,QSA]
RewriteCond %{SERVER_NAME} ^en\..*
RewriteRule ^(.*)$ $1?preklad=en [L,QSA]
ale robi to problem ... vid en.dnw.sk
asi cez rewrite .. ja som ten server nerobil ale admin to uz riesichrono napísal:Problém je aj napr. pri cz.dnw.sk (pri všetkých subdoménach okrem www). Ako sú tam riešené tie subdomény (asi je to tiež cez mod_rewrite)? Robil si to ty, alebo to môžeš aspoň zmeniť?
btw skús mi to prepísať tak aby to bralo udaje formou
dnw.sk/$1/
a nie tymto
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Ten prvý RewriteCond zabezpečí, že ak zadáš dnw.sk/aaa a aaa je súbor, tak sa nebude adresa prepisovať (to druhe je zase pre prípad, že by to bol adresár).warezman napísal:btw skús mi to prepísať tak aby to bralo udaje formou
dnw.sk/$1/
a nie tymto
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Čo vlastne teraz potrebuješ vyriešiť?
to je jedno...chrono napísal:Ten prvý RewriteCond zabezpečí, že ak zadáš dnw.sk/aaa a aaa je súbor, tak sa nebude adresa prepisovať (to druhe je zase pre prípad, že by to bol adresár).
Čo vlastne teraz potrebuješ vyriešiť?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^en.dnw.sk$
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/dbl.php?clanok=$1&preklad=en
najdi mi v tomto chybu prosim preco to nejde
Ja by som nepoužil %{HTTP_HOST} (prehliadač to nemusí poslať), ale radšej %{SERVER_NAME}. Tiež nie je dobrý nápad vyhadzovať tie RewriteCond %{REQUEST_FILENAME} !-f a RewriteCond %{REQUEST_FILENAME} !-d (aby, keď zadáš nejaký súbor alebo adresár, sa to zbytočne neprepisovalo).
// chrono: ak už tam musíte mať tie subdomény, nemohli by ste pre en urobiť výnimku (aby sa subdoména en neprepisovala)
// chrono: ak už tam musíte mať tie subdomény, nemohli by ste pre en urobiť výnimku (aby sa subdoména en neprepisovala)
ešte tam uprav tie absolútne linky na relatívne (lebo pri absolútnych sa to prepína z angličtiny do slovenčiny). Skúšali ste to aj vo Firefoxovi (ten vzhľad)? Lebo tam to vyzerá dosť zvláštne (ale Konqueror to zobrazuje normálne).
// chrono: súvisí to s tým, že FF načíta nesprávny css
// chrono: už mi to začalo fungovať (neviem, v čom bol problém)
// chrono: súvisí to s tým, že FF načíta nesprávny css
// chrono: už mi to začalo fungovať (neviem, v čom bol problém)