Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z mod rewrite i odnośnikami do plików
hubson812
post 14.05.2008, 21:58:34
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 19.05.2007

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


Witam,

W pliku .htaccess

CODE
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^([^.]*)$ index.php/$1


dzieki czemu otwierajac adres http://www.mojastrona.pl/parametr1/paramter2

zawsze otwiera index.php, w którym mam kod

CODE
$Params = array();
$DefaultParams = '/informacje';
$_SERVER['PATH_INFO'] = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $DefaultParams;
$Params = explode( '/', substr( $_SERVER['PATH_INFO'], 1) );


dzieli on wszystkie paramtry wejściowe, które odzielone są slashami i mam je dostępne w wektorze. Ale pojawia się problem z odnośnikami do obrazków, pliku css, itp. Przy wpisaniu http://www.mojastrona.pl/ wszystko jest ok, ale jak już podam jakies paramtery to kod wykonywany jest poprawnie, ale strona wygląda tak jakby nie był ładowany ani plik css, ani obrazki.

przykładowy link do pliku css:

CODE
<link rel="stylesheet" type="text/css" href="theme/css.css" />
Go to the top of the page
+Quote Post
danket
post 15.05.2008, 18:51:19
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 17.12.2007
Skąd: inąd :)

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


Mialem podobny problem, zalatwiłem to w większości po stronie php, bo nic innego nei wymyśliłem :/
Jest to bardzo proste rozwiązanie. Niestety zaprzęga sie parser do roboty, a przeciez nie o to chodzi, nie?
A jestem pewien, że można rozwiązać to po stronie mod_rewrite'a. Tylko nie wiem jeszcze jak smile.gif Ale się dowiem smile.gif

Do .htaccess dopisz sobie
CODE
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


a potem w pliku głownym, czy gdzie dajesz funkcje, napisz sobie funkcje która zmienia ścieżkę relatywną na całe URI. Np.:
CODE
function rel2uri($relativePath) {

return $uri = 'http://'.str_replace($_SERVER['DOCUMENT_ROOT'],$_SERVER['HTTP_HOST'],realpath($relativePath));

}


i potem tylko zamiast src="sciezka/do.jpg" dajesz src="'.rel2uri('sciezka/do.jpg').'"

Pamietaj, ze to konkretnie rozwiązanie dziala tylko do ścieżek relatywnych, jak podasz pełen uri to zdurnieje parser i głupoty wyjdą . Znaczy sie po prostu obrazek sie nei wyświetli.


--------------------
Eee... no fajny ten debian... :)
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 Wersja Lo-Fi Aktualny czas: 13.07.2025 - 13:42