Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod_rewrite] scieżki dostępu do ccsów,obrazków
Forum PHP.pl > Forum > Serwery WWW > Apache
R4D3K
Witam, siedzę nad problem już ponad 2 godziny i na nic sensownego nie mogę wpaść. Tworzę sobie serwis w na localhoscie (XAMPP 1.6.7, php 5.2.9 apache 2.0).
Kod
Options -Indexes
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /ogloszenia4

# User
RewriteRule ^wyloguj.html?                         index.php?id=user&id2=log_out
RewriteRule ^zarejestrowany.html?                  index.php?id=user&id2=register_end
RewriteRule ^rejestracja_krok_([0-9]+).html?       index.php?id=user&id2=register&id3=$1
RewriteRule ^bledny_login.html?                    index.php?id=user&id2=bad_pass
RewriteRule ^niektywne_konto.html?                 index.php?id=user&id2=no_activate_user
RewriteRule ^zapomnialem_hasla.html?               index.php?id=user&id2=forget_pass
RewriteRule ^odzyskalem_haslo.html?                index.php?id=user&id2=remind_pass
RewriteRule ^kod_([0-9a-zA-Z]+).html?              index.php?id=user&id2=activate_user&id3=$1
RewriteRule ^dane.html?                            index.php?id=user&id2=change_data
RewriteRule ^dane_zmienione.html?                  index.php?id=user&id2=change_end
RewriteRule ^regulamin/(1|2).html?                 index.php?id=user&id2=show_regulamin&id3=$1


Problem wygląda następująco: gdy odpalam http://localhost/ogloszenia4/wyloguj.html itp wszystko jest ok, natomiast ostnia regułka:
Kod
RewriteRule ^regulamin/(1|2).html?                 index.php?id=user&id2=show_regulamin&id3=$1


Wywołuje http://localhost/ogloszenia4/regulamin/1.html to wiadomo css mi się nie ładuje, spowodowane jest to tym, że korzystam z adresów względnych:
  1. <link rel="stylesheet" type="text/css" href="./css/style.css" />


I teraz mam pytanie czy da się ten problem rozwiązać za pomocą regułek mod_rewrite ? Próbowałem dodać w sekcji head
<base="http://localhost/ogloszenia4" />, ale to nic mi nie pomogło
erix
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /ogloszenia4

Możesz wytłumaczyć, co chcesz przez ten zapis osiągnąć?

Cytat
ale to nic mi nie pomogło

Firebug co zwraca? Jaką ścieżkę bezwzględną?
R4D3K
Dzięki erix za odpowiedź, już sobie poradziłem ;] Chwilowa zaćma na mózgu, poprostu niedawno sprawdziłem, że wkleiłem w sekcji head regułkę po definicji cssa
Cytat
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /ogloszenia4

Możesz wytłumaczyć, co chcesz przez ten zapis osiągnąć?

Już sam nie wiem, co chciałem osiągnąć porostu próbowałem ;]

Aby to nie był post z cyklu "napisałem, sam rozwiązałem i nic nie powiedziałem" napiszę rozwiązanie:
Gdy korzystamy z adresów relatywnych takich jak :
  1. <a href="./news/1.html">czytaj newsa</a>
,a jest to folder wirtualny, który został zdefiniowany regułką mod_rewrite (fizycznie taki katalog nie istnieje) rozwiązaniem jest znacznik base :
Cytat
Znacznik definiuje adres bazowy dokumentu. Według niego ustalane są wszystkie relatywne ścieżki dostępu do innych plików. Standardowo adresem bazowym jest adres, pod którym znajduje się plik.

PRZYKŁAD:
  1. <head>
  2. <base href="http://localhost/ogloszenia4/" />
  3. <link rel="stylesheet" type="text/css" href="./css/style.css" />
  4. </head>
  5. <body>
  6. <!-- obrazek jest fizycznie w folderze img -->
  7. <img src="./img/foto1.jpg" title="" />
  8. </body>
  9. </html>


Mam nadzieje że komuś pomoże, warto pamiętać, że należy definiować znacznik przed załączaniem wszelkich cssów, jsów
planet
co do znacznika <base> to muszę powiedzieć, że nawet nie wiedziałem o istnieniu takowego, na pewno mi się ta informacja przyda winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.