Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> htaccess RewriteRule a adresowania względne
compsoft
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.07.2016

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


Witam...
Temat przekierowania RewriteRule tysiące razy był komentowany na forach świata, niestety nie mogę znaleźć pomocy dotyczącej adresowania względnego po przekierowaniou. W czym rzecz? Może pokażę to na przykładzie. Posiadam
1: plik index.php:
  1. <?php
  2. <html>
  3. <head>
  4. <link href='css/style.css' rel='stylesheet'>
  5. </head>
  6. <body>
  7. <h1>test css</h1>
  8. <span class='text_1'>czerwony tekst</span><br><br>
  9. </body>
  10. </html>");

2: plik .htaccess:
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^jakis_parametr/?$ index.php
  4.  

3: plik style.css w podkatalogu css/:
  1. h1 {
  2. font-family: Verdana, Arial, Helvetica;
  3. font-size: 18px;
  4. font-style: normal;
  5. line-height: normal;
  6. font-weight: bold;
  7. font-variant: normal;
  8. text-transform: none;
  9. color: #444444;
  10. }
  11. .text_1 {
  12. color: #FF0000;
  13. font-family: Verdana, Arial, Helvetica;
  14. font-size: 12px;
  15. font-weight: bold;
  16. }

Gdzie problem?
Jeśli wykonam zapytanie bez slasha końcowego wszystko wygląda ok: (zobacz przykład 1)
natomiast jeśli powyższy adres zamknę slashem, plik css nie jest czytany (zobacz przykład 2)
Wygląda na to, że adres względny do pliku style.css jest w drugim przykładzie nieprawidłowy! Gdzie w .htaccess robię błąd?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




NIe: css/style.css
a: /css/style.css
a najlepiej: http://twojacudnastrona.pl/css/style.css
Go to the top of the page
+Quote Post
compsoft
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.07.2016

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


Cytat(nospor @ 28.01.2017, 23:00:21 ) *
NIe: css/style.css
a: /css/style.css

Sorki, ale po dodaniu początkowego slasha w obudwu przypadkach plik style.css nie jest czytany.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




a najlepiej?
Go to the top of the page
+Quote Post
compsoft
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.07.2016

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


Cytat(nospor @ 28.01.2017, 23:00:21 ) *
NIe: css/style.css
a: /css/style.css
a najlepiej: http://twojacudnastrona.pl/css/style.css

Przy zastosowaniu adresowania bezwzględnego wszystko działa OK, ale to nie rozwiązuje problemu, bo w przypadku każdego include musiał bym pełną ścieżkę podawać.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




ps: no i ustaw w swojej regule css by dotyczyla tylko sytuacji gdy plik nie istnieje (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
trueblue
post
Post #7





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


W pierwszym przypadku ostatni fragment adresu jest traktowany właśnie jako parametr, w drugi jako kolejne zagłębienie ścieżki.

Jeśli chcesz aby niezależnie od tego czy użytkownik wpisał slash lub nie, poszukaj reguły, która doda lub usunie tenże.
Jeśli chcesz aby w drugim przypadku css był poprawnie czytany, dodaj w html tag <base>.
Go to the top of the page
+Quote Post
compsoft
post
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.07.2016

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


Cytat(compsoft @ 28.01.2017, 23:16:34 ) *
Przy zastosowaniu adresowania bezwzględnego wszystko działa OK, ale to nie rozwiązuje problemu, bo w przypadku każdego include musiał bym pełną ścieżkę podawać.

Tu się pomyliłem. Nawet gdy plik style.css nie jest prawidłowo adresowany, polecenie include nie wymaga pełnego adresowania i działa poprawnie bez podania pełnej ścieżki do includowanego pliku.


Cytat(trueblue @ 28.01.2017, 23:18:05 ) *
Jeśli chcesz aby w drugim przypadku css był poprawnie czytany, dodaj w html tag <base>.

Dzięki, tag <base> rozwiązał mój problem.
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: 30.09.2025 - 20:13