Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mod_rewrite] scieżki dostępu do ccsów,obrazków
R4D3K
post 23.07.2009, 22:04:57
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

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


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
Go to the top of the page
+Quote Post
erix
post 23.07.2009, 22:37:48
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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ą?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
R4D3K
post 23.07.2009, 23:17:50
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 12
Dołączył: 16.03.2007

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


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

Ten post edytował R4D3K 23.07.2009, 23:19:02
Go to the top of the page
+Quote Post
planet
post 23.07.2009, 23:23:22
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 6
Dołączył: 15.07.2009
Skąd: Śląsk->Ruda Śląska

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


co do znacznika <base> to muszę powiedzieć, że nawet nie wiedziałem o istnieniu takowego, na pewno mi się ta informacja przyda winksmiley.jpg
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: 19.07.2025 - 18:12