Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mod rewrite - kilka elementarnych pytań
Forum PHP.pl > Forum > Serwery WWW > Apache
carpe_noctem
Witam wszystkich!

Robię prostą witrynę, która będzie miała nie więcej niż 10 podstron o przykładowych adresach:

www.przyklad.pl/index.php
www.przyklad.pl/produkty-nazwa1.php
www.przyklad.pl/produkty-nazwa2.php
www.przyklad.pl/kontakt.php
itd...

Chciałbym posługiwać się przyjaznymi adresami, które będą wyglądać tak:

www.przyklad.pl/
www.przyklad.pl/produkty-nazwa1/
www.przyklad.pl/produkty-nazwa2/
www.przyklad.pl/kontakt/
itd...

Wiem już, że mogę coś takiego osiągnąć za pomocą modułu Mod rewrite ale przyznaję szczerze, że nie rozumiem za bardzo jak to działa. Wygooglałem sobie coś takiego:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>


1) Czy korzystając z powyższego będę mógł wchodzić na stronę wpisując www.przyklad.pl/kontakt.php i www.przyklad.pl/kontakt i www.przyklad.pl/kontakt/ ?

2) Czy moje wewnętrzne linki na stronie mogą mieć rozszerzenia php czy muszą wyglądać tak jak docelowo bym chciał czyli np. <a href="/kontakt/">kontakt</a>?

3) Czy korzystanie z takiego rozwiązania może mieć jakiś skutki uboczne przy funkcjonowaniu strony, np. przy indeksacji witryny przez Google?

Będę wdzięczny za pomoc!
soft-Pr
A po co to komplikować
w .htaccess daj to

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

a w index.php daj walidacje linku i po sprawie.
carpe_noctem
Dziękuję za odpowiedź!

Niestety, nie bardzo rozumiem o co Tobie chodzi z tą walidacją linku. Możesz powiedzieć coś więcej na ten temat?

A propos moich pytań - czy ktoś się orientuję?
Fishu
Chodzi mi poprostu o to, aby dane były przesyłane za pomocą $_GET do pliku index.php. Np. jak byś otworzył twoja_strona.pl/kontakt to by otworzyło plik index.php?zmienna=kontakt.
Spróbuj z takim kodem:
Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [NC,L]

Jeżeli to nie zadziała to nie wiem. U mnie działa powyższy kod jak i ten twój co podałeś.
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.