Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

mod_rewrite i .htaccess

[es] :: Linux/UNIX serveri i servisi :: mod_rewrite i .htaccess

[ Pregleda: 3501 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mikis
Mihailo Stefanović
Beograd

Član broj: 1825
Poruke: 767
*.verat.net

Sajt: www.mikis.org


Profil

icon mod_rewrite i .htaccess18.07.2003. u 05:20 - pre 205 meseci
Može li me neko spasiti bede kopanja po faq-ovima i dokumentaciji ;) Zašto Apache (1.3.x) ne kapira (ignoriše) RewriteRule-s kada se stave u .htaccess fajl sajta, nego samo kada se navedu u u httpd.conf?
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Član broj: 71
Poruke: 2194
*.habil.is

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: mod_rewrite i .htaccess18.07.2003. u 13:41 - pre 205 meseci
Zato sto nisi pravilno napisao pravila u .htaccess fajlu. Provereno radi bez ikakvih problema.

Primer sadrzaja .htaccess fajla:
Code:

<Files "*">
RewriteEngine On 
RewriteRule /index.html /stuff.php
</Files>


Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

mikis
Mihailo Stefanović
Beograd

Član broj: 1825
Poruke: 767
*.verat.net

Sajt: www.mikis.org


Profil

icon Re: mod_rewrite i .htaccess20.07.2003. u 03:29 - pre 205 meseci
Hmmm, problem je što sam "zaboravio" da u httpd.conf za taj direktorijum umesto AllowOverride: None stavim FileInfo (ili All).

Drugo, kada stavim <Files "*"> ... </Files> u .htaccess dobijam u Apache-u grešku:

400 Bad Request Your browser sent a request that this server could not understand.

Međutim, šta se dešava: u httpd.conf imam sledeći RewriteRule koji savršeno radi:

Code:

    RewriteEngine On
    RewriteRule ^/(.*)\.lat\.php$  /cirtolat.php [L]


(umesto svakog *.lat.php otvori /cirtolat.php). E pa to isto u .htaccess ne radi :(

404 Not Found The requested URL /index.lat.php was not found on this server.

Izgleda da je problem u regularnom izrazu, ali ne mogu da otkrijem gde.
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.verat.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: mod_rewrite i .htaccess20.07.2003. u 03:39 - pre 205 meseci
Probaj da koristiš RewriteBase (vidi u uputstvu) — on upravo i služi za rešavanje tog problema sa upotrebom iz .htaccess fajla (v. kako Apači obrađuje zahteve, i zašto je to neophodno).

Uz to, preporučio bih da koristiš „/cirtolat.php/$1“ kako bi ono što ti je prepoznao (.*) dobio u promenljivoj $PATH_INFO.

Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

mikis
Mihailo Stefanović
Beograd

Član broj: 1825
Poruke: 767
*.verat.net

Sajt: www.mikis.org


Profil

icon Re: mod_rewrite i .htaccess20.07.2003. u 06:23 - pre 205 meseci
Citat:
Probaj da koristiš RewriteBase (vidi u uputstvu) — on upravo i služi za rešavanje tog problema sa upotrebom iz .htaccess fajla (v. kako Apači obrađuje zahteve, i zašto je to neophodno).


Netje :( Ali šta će mi RewriteBase kad je sve u root-u sajta?

Citat:
Uz to, preporučio bih da koristiš „/cirtolat.php/$1“ kako bi ono što ti je prepoznao (.*) dobio u promenljivoj $PATH_INFO.


Već ga dobijam preko $_SERVER['SCRIPT_NAME'] :)
 
Odgovor na temu

mikis
Mihailo Stefanović
Beograd

Član broj: 1825
Poruke: 767
*.verat.net

Sajt: www.mikis.org


Profil

icon Re: mod_rewrite i .htaccess20.07.2003. u 07:19 - pre 205 meseci
Najzad rešeno... Prvo, smeta mu / na početku RewriteRule-a i zato ga preskače. Nije loše uključiti RewriteLogLevel 9 :) Drugo, i kad uklonim sleš, $_SERVER['SCRIPT_NAME'] se pobrlja pa se i moj skript pogubi... Rešenje je:

Code:

RewriteEngine On
RewriteRule ^(.*)\.lat\.php$  /cirtolat.php/$1 [L]

i onda koristiti $PATH_INFO umesto $SCRIPT_NAME... Hvala na sugestijama!
 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.metrohive.net

Sajt: www.bokica.com


Profil

icon Re: mod_rewrite i .htaccess20.07.2003. u 23:54 - pre 205 meseci
Ovo lepo radi, ali da li je moguce ovako nesto:

ovako bi to bilo klasicnim nacinom
http://localhost/index.php?promenjiva=5


http://localhost/promenjiva/5
(u root-u se, recimo, nalazi samo index.php)
Znaci ako "/promenjiva/" direktorijum ne postoji poziva se index.php.
Zna li neko kako to da resim?

znaci, ne odgovara mi ovo:
http://localhost/index.php/promenjiva/5
 
Odgovor na temu

mikis
Mihailo Stefanović
Beograd

Član broj: 1825
Poruke: 767
*.60.eunet.yu

Sajt: www.mikis.org


Profil

icon Re: mod_rewrite i .htaccess21.07.2003. u 03:25 - pre 205 meseci
Pa može jednostavno, stavi neka se uvek poziva index.php, a onda u njemu na samom početku proveriš da li fajl već postoji i ako postoji include-uješ ga, a ako ne onda radi dalje... Ja sam to koristio u ovom mom ćirilično->latiničnom konvertoru, jer se javlja problem sa fajlovima koji u sebi imaju ostale ćirilične jezike (ruski, bugarski...). Zato takve fajlove konvertujem ručno pa ih include-ujem, a ostale konvertujem u letu. Ovako izgleda početak cirtolat.php skripta:

Code:
<?
$url = substr($_SERVER['PATH_INFO'],1) . ".lat.php";

if (file_exists($url)) {
include ($DOCUMENT_ROOT . $_SERVER['PATH_INFO']);

} else {
...


A možeš rešiti i na drugi način, korišćenjem samo RewriteCond i RewriteRule. Imaš sličan primer u Apache dokumentaciji (URL Rewriting Guide):

Code:

RewriteEngine on
RewriteCond   /your/docroot/%{REQUEST_FILENAME} !-f
RewriteRule   ^(.+)                index.php/$1

 
Odgovor na temu

bOkIcA
Bojan Abramovic
Novi Sad

Član broj: 1808
Poruke: 520
*.metrohive.net

Sajt: www.bokica.com


Profil

icon Re: mod_rewrite i .htaccess21.07.2003. u 03:55 - pre 205 meseci

Hvala, ovo drugo sam trazio.
That's it
 
Odgovor na temu

[es] :: Linux/UNIX serveri i servisi :: mod_rewrite i .htaccess

[ Pregleda: 3501 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.