Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Modrewrite
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Mod rewrite pytań kilka…

Witam, ostatnio zastanawiam się nad jedną kwestią budowy składni mod_rewrite’a. Zazwyczaj jeżeli wpiszemy adres http://page.pl/style.css adres odwoła się do katalogu /public_html/style.css . Napisze wstęp do mojego problemu. Zakładamy, że ktoś zażyczył sobie takiego przepisywania, kiedy plik istanieje, wówczas jest przepisywany, a jeżeli nie, to deklarujemy jakiś inny plik (dla przykładu index.php). Zasada jest taka:
http://page.pl/style.css
to: /public_html/style.css
http://page.pl/nieistniejący_style.css
to: /public_html/index.php

Kod .htaccess wyglądałby mniej więcej tak:

Kod
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^(.+)$ $1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.+)$ index.php


Możnaby jeszcze zamiast wykrycia niewłaściwego pliku wywołać index.php jako ErrorDocument 404, ale trzymajmy się powyższego schematu.

Ok., powyższy przykład szuka pliku w katalogu /public_html/. Załóżmy, że mam taką strukturę: w katalogu głównym /public_html/ jest plik index.php oraz folder /www/. Wszystkie adresy przyjmowałyby następujący schemat:
http://page.pl/style.css
to: /public_html/www/style.css
http://page.pl/nieistniejący_style.css
to: /public_html/index.php

Moje pytanie brzmi: jak zmodyfikować RewriteCond %{REQUEST_FILENAME} –f tak, aby sprawdzał, czy plik istnieje w folderze /www/ a nie w folderze głównym?

P.S: robiłem, że rewritebase jest na /www/, a index był: ../index.php ale nie działało... ciągle wyskakiwał index.
Go to the top of the page
+Quote Post
Kayne
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 30.04.2006
Skąd: Kalisz

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


A nie łatwiej po prostu użyć WildCard?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


php Pro?? PRzenosze
Go to the top of the page
+Quote Post
Athlan
post
Post #4





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat(Kayne @ 7.12.2006, 00:10:54 ) *
A nie łatwiej po prostu użyć WildCard?


Potrzebuję to zrobic tak, jak opisałe w poście #1
Go to the top of the page
+Quote Post
envp
post
Post #5





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

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


  1. RewriteCond /www/%{REQUEST_FILENAME} !-f


(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Athlan
post
Post #6





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


no niestety nie dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
envp
post
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

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


zawsze mozesz zrobic przekierowanie wszystkiego na get.php i tam parsowac i decydowac co podawac do przegladarki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 00:31