Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mod_rewrite prawie działa. Jaki błąd?
Forum PHP.pl > Forum > Serwery WWW
gummmibear
Hej.


Mam problem z mod_rewrite.

Plik .httaccess wygląda tak:

  1. RewriteEngine On
  2. #Options FallowSymLinks
  3.  
  4. RewriteRule ^glowna index.php
  5. RewriteRule ^show.html show.php



po wejściu np. localhost/glowna

Ładnie ładuje mi index.php

W index.php mam np link w postaci.

  1. <a href="index.php" class="menu_link">Strona główna</a>


niestety po otwarciu linka lub zaznaczeni myszką zamiast "glowna" mam "index.php"

Gdzie mam błąd?
jarrod
Cytat(gummmibear @ 9.08.2009, 21:05:23 ) *
Gdzie mam błąd?

W podejściu do mod_rewrite.
Moduł ten nie służy do zamiany linków w wygenerowanym dokumencie. Jeśli w kodzie masz wpisany index.php to za pomocą mod_rewrite tego nie zmienisz.
mod_rewrite służy do interpretacji adresów. Czyli tak jak w twoim przykładzie jeśli adres to /glowna to mod_rewrite przekierowuje żądanie do pliku index.php
Natomiast jeśli wchodzisz pod adres /show.html to oznacza, że tak naprawdę chodzi ci o show.php.

Możesz za pomocą tego modułu (oprócz powyższego) przekierować na inny adres czyli jeśli ktoś wejdzie poprzez index.php to od razu przekierowuje na /glowna (odpowiedniej reguły poszukaj na forum bo już były opisywane).
Natomiast nie wpłynie to na źródło dokumentu - link do /index.php nadal będzie wskazywał na /index.php (wyszukiwarki też zobaczą /index.php).
Zatem aby zrobić sobie przyjazne URL-e to niestety musisz pozmieniać linki w źródłach.
gummmibear
wstydnis.gif

jarrod dziękuję za wyjaśnienia.
Gdzieś przeczytałem że mod_rewrite zmienia linki w pliku źródłowym i dlatego ta gafa blinksmiley.gif




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.