Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MOD_REWRITE] Denerwujący problem z, proszę o pomoc
Forum PHP.pl > Forum > Przedszkole
forrestar
Witam, od razu przejdę do rzeczy.

Proszę wejść na stronę http://strzyzow-orka.com

Przed chwilą zacząłem się bawić mode_rewrite, efektem czego są linki typu:

http://strzyzow-orka.com/glowna
http://strzyzow-orka.com/aktualnosci

Dodałem też wyrażenie regularne, która pozwala mi na taki link -> http://strzyzow-orka.com/aktualnosci,1

Moje wyrażenie wyglądają tak:

Kod
# ustawienie przepisywania linkow

RewriteEngine on

RewriteRule ^rss?$ files/orka_rss.html [L,NC]
RewriteRule ^mapa?$ mapa_strony.php [L,NC]
RewriteRule ^glowna?$ index.php [L,NC]
RewriteRule ^aktualnosci?$ aktualnosci.php [L,NC]

RewriteRule ^aktualnosci,([0-9]+)?$ aktualnosci.php?display=news&id=$1 [L,NC]

RewriteRule ^ofirmie?$ ofirmie.php [L,NC]
RewriteRule ^oferta?$ oferta.php [L,NC]
RewriteRule ^osiagniecia?$ osiagniecia.php [L,NC]
RewriteRule ^filmy?$ filmy.php [L,NC]
RewriteRule ^galerie?$ galerie.php [L,NC]
RewriteRule ^kontakt?$ kontakt.php [L,NC]


Wszystko ładnie działa, ale ... :wink:




PROBLEM PIERWSZY
----------------------------------


Można zauważyć, że w na końcu każdego adresu nie ma slasha. Próbowałem dodawać taką regułę:

Kod
RewriteRule ^glowna/?$ index.php [L,NC]


i wejść na adres http://strzyzow-orka.com/glowna/ i co...?

I owszem, działa. Ale niestety jak działa? Źle działa :wink: . Problemem jest to, że kiedy adres jest ze slashem na końcu, to nie wiem, moduł traktuje to chyba jako oddzielny podfolder, efektem czego są: brak grafiki i brak stylów css. Z regułą bez slasha i adresem bez slasha wszystko działa OK - ze slashem się foszy.

Czy ktoś wie, w czym problem?

UWAGA: Mogę odpalić tą regułę, w celach poglądowych, jeśli ktoś chciałby zobaczyć ten efekt i pomogłoby mu to w ... pomocy mi winksmiley.jpg .




PROBLEM DRUGI
----------------------------------


Jest bardzo podobny do pierwszego.

Jak można zauważyć w linku http://strzyzow-orka.com/aktualnosci,1 separatorem pomiędzy aktualnościami , a numerem danego newsa jest , (przecinek).

Jeśli użyję reguły:

Kod
RewriteRule ^aktualnosci/([0-9]+)?$ aktualnosci.php?display=news&id=$1 [L,NC]


i wejdę na adres http://strzyzow-orka.com/aktualnosci/1 co się ukaże moim oczom? Owszem, wyświetli mi danego newsa, ale ponownie - strona wyświetli się bez grafiki i stylów, tak jakby była w jakimś podfolderze i nie miała dostępu do obrazów i css. Wolę więc nie myśleć co by było dodatkowo po dodaniu slasha na końcu adresu...

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

Jeśli tylko ktoś może mi pomóc, będę bardzo wdzięczny.

pozdrawiam serdecznie
forrestar
UPDATE: zmieniłem separator z przecinka na pauze ( http://strzyzow-orka.com/aktualnosci-1 )

problem dalej jest nierozwiązany, proszę o pomoc!
Kicok
HTML <base> albo zamiast pisać:
  1. <img src="obrazek.jpg" />


pisz:
  1. <img src="/obrazek.jpg" />
forrestar
Ok, podziałało dodanie slasha do ścieżek winksmiley.jpg.

Jednak jest jeszcze jeden problem:



UPDATE:

Doszedłem do ładu z grafiką i plikami zewnętrznymi.

Jednak pozostaje problem dopisywania ciągów do adresu.

Czyli w skrócie - proszę wejść na http://strzyzow-orka.com/aktualnosci/1 - strona tym razem wyświetli się już poprawnie, jednak proszę spróbować wtedy kliknąć na któryś z linków z menu.

Dostaniemy 404, bo do adresu linków "dopisały się" samoistnie aktualnosci . Jak z tym sobie poradzić smile.gif?
wielokropek
Dopisać slashe do linków? Lepiej dopisz <base> - wszystko załatwisz za jednym zamachem.
forrestar
Uh... czyli co dokładnie mam dopisać winksmiley.jpg ?

Jak ten problem rozwiązać? Uff, proszę o pomoc, bo denerwuje mnie to okropnie!
forrestar

PROBLEM ROZWIĄZANY
-------------------------------------



Uff, wreszcie się z tym uporałem winksmiley.jpg..

Podziałało równoczesne dodanie

Kod
<base href="http://strzyzow-orka.com/" />


do sekcji head oraz dodanie do adresów plików zewnętrznych slasha na początek (np. /files/orka_scripts.js ). Na początku dodawałem tego slasha do adresów obrazów w stylach CSS ( background-image: url('/gfx/bg.gif') ), co było błędem.

Zaś same reguły przedstawiają się następująco:

Kod
RewriteEngine on

RewriteRule ^admin?$ /admin/ [R]
RewriteRule ^admin/?$ files/admin.php [L,NC]

RewriteRule ^rss?$ /rss/ [R]
RewriteRule ^rss/?$ files/orka_rss.html [L,NC]

RewriteRule ^glowna?$ /glowna/ [R]
RewriteRule ^glowna/?$ index.php [L,NC]

RewriteRule ^mapastrony?$ /mapastrony/ [R]
RewriteRule ^mapastrony/?$ mapa_strony.php [L,NC]

RewriteRule ^([a-zA-Z]+)?$ /$1/ [R]
RewriteRule ^([a-zA-Z]+)/?$ $1.php [L,NC]

RewriteRule ^([a-zA-Z]+)/([0-9]+)?$ /$1/$2/ [R]
RewriteRule ^([a-zA-Z]+)/([0-9]+)/?$ $1.php?display=news&id=$2 [L,NC]


To tak dla potomności, może ktoś będzie miał w przyszłości podobny problem :wink: .
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.