|
Regular expression i htaccess regex, PCRE, POSIX, upotreba Apache .htaccess , mod_rewrite |
|
Alati teme | Način prikaza |
04. 11. 2005. | #1 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
.htaccess, http -> jedno pravilo, https -> drugo
Da li mi neko može pomoći. Problem je sledeći: želim da kad čovek dolazi sa http da se primeni jedan rewrite rule, ako je pak https da se primeni drugo pravilo. Prilično bitno i hitno
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog |
04. 11. 2005. | #2 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Rešio, metodom uzaludnog pokušaja i uz pomoć prijatelja (fala Godžo). Evo, možda nekom pomogne:
Kôd:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{HTTPS} ^on.* RewriteRule ^(.*)$ https://www.example.com/index.php?req=/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ http://www.example.com/index.php?req=/$1 [L]
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog |
07. 11. 2005. | #3 |
Goran Radulović
Professional
|
nema frke care (mrzzzzzzzzzzim htaccess)
__________________
Never show weakness, the only pain that matters is the pain you inflict. |
05. 12. 2005. | #4 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
obozavam htaccess i mod_rewrite uzgred, zasto ceo posao obrade url-a prebacivati na php, kada jedan (tj dobar) deo moze da odradi i apache?
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
05. 12. 2005. | #5 |
Ivan Dilber
Sir Write-a-Lot
|
a tek kad otkrijes RewriteMap komandu i sta sve sa tim moze da se uradi.. ucitavanje rewrite rules iz text fajlova, iz baze, cak i externu skriptu koja radi rewrite
jedino sto mora da se napomene da je upotreba mod_rewrite u .htaccessu losije resenje (ali ko nema izbora sta ce), daleko je efikasnije ko ima pristup httpd.conf-u da tamo pise rewrite rules, jer se time stede dodatni redirekti, i tada mod_rewrite prakticno uopste ne utice na perfomanse servera. To je tek onda prava stvar... |
05. 12. 2005. | #6 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Zato što .htaccess ne može da se gradi i učitava dinamički, a PHP može. Pogledaj sve novije frameworke: svi koriste neki vid rutiranja.
Npr, framework koji koristim ti ne dozvoljava da imaš "prljave" URLove, tj. dozvoljava ti, ali ti je jednostavnije da koristiš /nesto/nesto/nesto/ jer imam niz ruta definisanih za taj tip URLova.
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog Poslednja izmena od Ilija Studen : 05. 12. 2005. u 16:29. |
06. 12. 2005. | #7 |
Ivan Dilber
Sir Write-a-Lot
|
ma moze, kako ne moze...sve moze
kao prvo htaccess se ucitava za svaki zahtev, tako da ti mozes da ga generise po volji...tako recimo radi Wordpress... mada je to primitivno resenje, jer je mnooooogo bolje sa RewriteMap. Tako mozes da imas recimo perl (ili C ili php-cli) skript kome Apache posalje na STDIN neki url, a ovaj mu vrati novi url preko STDOUT, i onda Apache koristi taj novi url.. znaci mozes da rutiras kako ti se svidja, isto kao iz skripta, ali sa jednom velikom prednoscu, sto se taj skript pokrene samo jednom, kad se startuje Apache, i ostaje upaljen trajno (koliko i Apache), pa se izbegava overhead za kompajliranje kod svakog upita...takodje i ako koristis bazu, povezujes se samo jedanput, pa je brze... moduli za apache su ludilo, ali nazalost u web hosting varijanti ne moze vecina tih stvari da se iskoristi kako treba... |
06. 12. 2005. | #8 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
najbolje performanse se postizu ako se mod_rewrite pravila upisu direktno u vhost config. uostalom, neke rewrite opcije ni ne mogu da se promene iz per-directory (.htaccess) config fajlova (kao npr RewriteLog).
RewriteMap je dosta mocan alat. Jasno je meni zasto Ilija radi ovako - zgodnije je da imas sve na jednom mestu i da to kontrolises kako tebi odgovara, ali sto kaze ivanhoe, sa mod_rewrite "nema da ne moze!" kad smo vec kod .htaccess-a, evo sta ja koristim za moj home-made cms. Kôd:
# .htaccess # Configure PHP and add source highlighting AddType application/x-httpd-php-source .phps php_value display_errors "0" php_value error_reporting "E_NONE" php_value magic_quotes_gpc "0" php_value magic_quotes_runtime "0" php_value expose_php "0" # Disable directory indexes Options -Indexes # Configure rewrite engine RewriteEngine On RewriteOptions MaxRedirects=10 # If http://www.someplace.com/index/ is requested, transform it and stop. # (otherwise, it will lead to error 500) RewriteCond %{REQUEST_URI} /index/ RewriteRule ^.+$ index.php [L] # # If an existing file is requested, allow direct access # # (if a directory contents should be protected, create .htaccess # file with following contents: # # order allow,deny # deny from all # # and save in directory you need. # RewriteCond %{SCRIPT_FILENAME} -f RewriteRule ^(.+)$ $1 [L] # If user enters http://www.someplace.com/something, check if something.php # exists in specified directory (/ in this case), and if it does, let user # access it. RewriteCond %{SCRIPT_FILENAME}\.php -f RewriteRule ^(.+)$ $1.php [L] # # Now do some magic: convert url of form # # http://www.someplace.com/subdir/mod/act/parm1/val1/ # # into # # http://www.someplace.com/subdir/index.php?subdir/mod/act/parm1/val1/ # # That allows script to parse all input parameters, and makes it possible to # move whole directory structure in some subdirectory, without modifications # in this file. In other hand, script has to figure out which part of param # string belongs to the path. # RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{REQUEST_URI} ^/(([^\.]+)?(/((.+)?(/(.+)?)?)?)?)?$ RewriteRule ^.+$ index.php?%2%3 [L] # eof .htaccess
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
06. 12. 2005. | #9 |
Ivan Dilber
Sir Write-a-Lot
|
kad koristite -f i -d opcije obratite paznju da to zahteva da Apache u tom rewrite koraku pristupi fajl sistemu i proveri da li fajl, odnosno dir postoji... znaci usporava se rad, pogotovo ako ima dosta fajlova...
naravoucenije, gledajte uvek da vam pravila sa -f i -d budu pri kraju spiska, ili jos bolje da budu negde u nekom subdirektorijumu u zasebnom .htaccessu, tako da se pozivaju samo kad stvarno treba, a ne da se ta provera vrsi za svaku mogucu stranicu... Takodje te provere mogu obicno da se rese upotrebom custom 404 handlera...naprosto ako trazeni fajl postoji bice pokrenut, a ako ne bice pozvana zadata skripta da handluje 404.. ona samo treba da posalje header sa 200 OK statusom, da ne bi browser slucajno dao Not Found upozorenje, i da uradi sta god treba da uradi...ovakav nacin je manje flexibilan (za nijansu), ali je dosta efikasniji u smislu perfomansi ( a i ne zahteva mod_rewrite)... |
06. 12. 2005. | #10 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
citao sam o tom pristupu, ali sam se odlucio da zadrzim ovakav nacin, jer je, kao sto si sam rekao, malo flexibilniji.
mada, mozda sam samo lenj da menjam nesto sto vec radi posao. generalno, tamo gde ovaj cms bude radio, nece biti bas puno direktnih poziva fajlovima, izuzev slika, koje ce verovatno stajati u jednom folderu sa htaccess rewriteengine off opcijom, ili necim slicnim.
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
FFAASSion - DRUGO OKUPLJANJE | mprinc | Flash | 1 | 10. 02. 2009. 02:16 |
Struja ili nesto drugo? | bluesman | Hardware | 7 | 21. 07. 2008. 03:57 |
action="http ili https' ? | misk0 | (X)HTML, JavaScript, DHTML, XML, CSS | 6 | 11. 07. 2007. 21:39 |
.htaccess, http->https | oliver | Regular expression i htaccess | 3 | 07. 11. 2005. 21:29 |