Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]mod_rewrite - pytanie od nowicjusza
Forum PHP.pl > Forum > Przedszkole
Drav
Witam.
Szukałem sposoby zmiany moich linków z index.php?id=strona na jakies prostsze i znalazłem je - mod rewrite

Poczytałem kilka tutoriali i wydaje mi sie, że wszystko robiłem ok, albno źle zrozumiałem to co było w nich napisane.

Więc na poczatek mam to:

plik .htaccess
Kod
RewriteEngine On
RewriteRule ^kontakt$ index.php?id=kontakt

skrypt w pliku index.php (na szybko pisany, żeby sobie przetestować, no ale jest)
Kod
    <?php
    switch ($_GET['id'])
    {
        case kontakt:
            include('kontakt.htm');
            break;
        default:
            echo 'Strona główna :-)';
            break;
    }
?>

i link
Kod
<a href="kontakt">kontakt</a>


Ok a teraz problem.

1. Kiedy klikam w link wywala mi bląd (404) więc wnioskuje, że COŚ w .htaccess zrobiłem źle, ale co to juz nie wiem.
2. Jak tzrebaby to przerobić, zeby zamieniało jakikolwiek tekst w id i w strona (index.php?id=strona) na www.adres.pl/id/strona/, albo jesli sie nie da to chociaż zaleznie od tego czy w id jest a, czy b to by wrzucało a/strona, lub b/strona

Bedę wdzięczny za KAŻDĄ pomoc, bo niestety doszedłem do momentu, w którym nie wiem już co zrobic.

Pozdrawiam
uglukha
tak na szybko, wiec moze nie dzialac, ale powinno

Kod
RewriteCond %{HTTP_HOST} ^twojadomena.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.twojadomena.com$
RewriteRule ^index.php?id=kontakt$ kontakt.html$1 [R=301,L]


generalnie zapisales odwrotnie w rewriterule na moje oko, jesli dobrze zrozumialem co chcesz osiagnac
Drav
no dalej błąd.
plik index.php znajduje się obecnie w folderze "/demo", moze to ma jakies znaczenie.
uglukha
Cytat(Drav @ 11.10.2009, 21:02:36 ) *
no dalej błąd.
plik index.php znajduje się obecnie w folderze "/demo", moze to ma jakies znaczenie.


zdecydowanie ma znacznie, dopisz demo/ przed index
Drav
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^adres.pl$ [OR]
  3. RewriteCond %{HTTP_HOST} ^www.adres.pl$
  4. RewriteRule ^demo/index.php?id=kontakt$ kontakt.html$1 [R=301,L]


i dalej 404 :/ nie mam pojęcia co robić.
http://swiatdiablo.pl/demo/ - adres strony, może pomoze.
Pilsener
Ktoś tu coś kręci :/

1. Jak rozumiem chcesz zamiast linku typu twojastrona.pl/index.php?id=strona mieć link twojastrona.pl/strona?
2. Sprawdź najpierw, czy działa link zwykły: index.php?id=strona
3. Sprawdź w najprostszej formie, czy działa przepisywanie adresów:
Kod
RewriteRule index.html index.php [L]

4. Jeśli działa, to przepisz link przyjazny na zwykły:
Kod
RewriteRule ^(.+)/$ ?id=$1 [L]
- przepisze adres typu mojastrona.pl/strona/ na mojastrona.pl/index.php?id=strona
Drav
po co mam przepisywać przyjazny na zwykły? nie ma byc czasem odwrotnie? ^^

ten 1 przykład działa poprawnie.
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.