mod_rewrite a pliki incudowane

0

Witam, w innym temacie dostałem podpowiedź, by zastosować mod_rewrite w celu zmiany adresu z index.php?strona=kontakt na /kontakt/

Poczytałem trochę w tym temacie i mam 2 pytania:

  1. Mod rewrite działa na zasadzie, że nie zmieni sam wyglądu, tylko jeśli mam kod:

<a href="index.php?strona=kontakt>Kontakt</a>

to on wyświetli właśnie taki link a nie ten przerobiony tak ?

  1. struktura na serwerze wygląda następująco: public_html/ oraz public_html/include/ plik index.php znajduje się w głównym katalogu a ładowane pliki do treści są w katalogu include. W katalogu z index.php jest plik .htaccess z takim warunkiem:
    RewriteEngine On
    RewriteRule ^/(.*)/$ /?strona=$1 [NC]

ale gdy wpisuję w przeglądarkę strona.pl/kontakt/ to to nie działa.

Próbowałem również w pliku .htaccess wpisywać:

    RewriteRule ^/(.*)/$ /index.php?strona=$1 [NC]
    oraz
    RewriteEngine On
    RewriteRule ^/([a-zA-Z]+)/$ /index.php?strona=$1 [NC]

ale żadne z tych nie działa, co robię źle ?

Właśnie udało mi się "uruchomić" stronę dzięki:

RewriteRule ^(.*)$ index.php?strona=$1

i jak wpisuję www.strona.pl/kontakt/ to niby otwiera, problem w tym, że zamiast kontaktu otwiera mi stronę główną, a cały css czy skrypty, które są w katalogach styles i scripts nie są ładowane.
Jakiś pomysł ?
Pozdrawiam!

0

Linki w <a> sam sobie musisz zmienić, mod_rewrite nie modyfikuje Ci outputu.

RewriteRule ^/(.*)/$ /?strona=$1 [NC] -- wywal slash na początku.

Style nie są ładowane, bo wpisując w przeglądarkę "/kontakt/" sugerujesz przeglądarce, że "jesteś" w folderze kontakt, i linkujesz do cssów pewnie relatywnie, czyli tak src="css/style.css", czyli szuka Ci styli w "/kontakt/css/style.css". Linkuj relatywnie do korzenia strony, np: src="/css/style.css"

0

Dzięki piękne za odpowiedź :)

Co do styli, to tak mam poustawiane, może dokładniej:

struktura na serwie:
public_html, public_html/include, public_html/css, public_html/script.

W głównym katalogu jest plik index.php a w nim np odnośnik do css/style.css
Jak otwieram stronę poprzez /kontakt/ to nie widzi w ogóle css-a, zresztą nie widzi żadnych połączeń, ani skryptu, ani no flasha który jest w tym samym katalogu co index.php

@Edit, dobra, już sobie poradziłem, wszędzie trzeba dopisać ../ przed linkiem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1