Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mod_rewrite - Jak pominac obrazki, css, js..
NuLL
post
Post #1





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Mam taki prosty plik .htaccess
Kod
RewriteEngine On
#RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{2,4}$)
RewriteRule ^.*$ index.php?$1

On przepisuje adres tak aby nie bylo w nim index.php jednakze nie pomija obrazkow,css-a oraz js. Czy da sie jakos pominac przepisywanie jesli REQUEST_URI konczy sie konkretnymi rozszerzeniami badz jesli REQUEST_URI zawiera okreslony katalog ?


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
bregovic
post
Post #2





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


Zdaje się że jeśli na końcu RewriteRule dodasz flagę [L] to pominione zostaną istniejące pliki - ale moge źle pamiętać.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
NuLL
post
Post #3





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Niestety to nie pomaga - musze chyba jeszcze pokombinowac.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Zajec
post
Post #4





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

Ostrzeżenie: (0%)
-----


Kod
RewriteRule !(\.(jpg|jpeg|png)$) index.php
Pomija wszyttko kończące się na
.jpg
.jpeg
.png

A do wpisanego adresu dostajesz się przez $_SERVER['REQUESTED_URI']

Ten post edytował Zajec 11.11.2005, 15:51:22
Go to the top of the page
+Quote Post
sobstel
post
Post #5





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(bregovic @ 2005-11-09 02:26:50)
Zdaje się że jeśli na końcu RewriteRule dodasz flagę [L] to pominione zostaną istniejące pliki - ale moge źle pamiętać.

nie, do pomijania istniejacych powinno sie przydac to :

Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


a [L] na koncu oznacza tylko zakonczenie przetwarzania (ostatnia regula)


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
NuLL
post
Post #6





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


Zajec - thx - nie myslalem ze mozna to tak prosto zrobic smile.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
.johnny
post
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 14.05.2005
Skąd: Pasikurowice (koło Wrocławia)

Ostrzeżenie: (0%)
-----


Cytat(bregovic @ 2005-11-09 02:26:50)
a [L] na koncu oznacza tylko zakonczenie przetwarzania (ostatnia regula)
No własnie chciałem ostatnio z tego skorzystac, zrobiłem sobie taki .htaccess:
Kod
RewriteEngine On
#RewriteBase /

# dla tych katalogow nic nie rob (URL tak jak jest)
RewriteRule ^(feed|gfx|css|js).*$ - [last]

# dla tych rozszerzen tez nic nie rob
#RewriteRule ^.*\.(gif|jpg|png|css|js)$ - [last]

# wszystko inne wrzuc do index.php
RewriteRule ^(.*)$ index.php?r=$1

index.php
  1. <?php print_r($_GET); ?>

i te dwie pierwsze regułki działają mi elegancko, ale ta ostatnia - nie mam pojęcia czemu - robi mi coś takiego - wywołanie http://host/dupa/dupa/ :
Kod
Array ( [r] => index.php )

Nie mam pojęcia co o tym myśleć dry.gif
Jedyne co zauważyłem, to że wstawienie jakiegoś "normalnego" znaku do RewriteRule, np.
Kod
RewriteRule ^(d.*)$ index.php?r=$1
powoduje, że wszystko zaczyna działac zgodnie z oczekiwaniami (tzn. $_GET['r'] == 'dupa/dupa/')

Problem pojawia się niezaleznie od uzycia
Kod
RewriteBase /
na początku, zarówno pod PHP4 jak i PHP5 (to akruat zdaje się nie ma większego znaczenia), na moim własnym Apache'u jak i na serwerze providera.

Ktoś ma jakis pomysł...?

Ten post edytował .johnny 12.11.2005, 23:34:03


--------------------
just yuppie. | QueenOnline.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:39