Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przyjazne linki
Forum PHP.pl > Forum > Przedszkole
kona79
Witam, mam spore trudności z ustawieniem przyjaznych linków. Przeglądałem dużo materiałów a mimo to nie udało mi sie...
na swojej stronie w index używam :
if (isset($_GET['page']))
{
require_once '' . $_GET['page'] . '.php';
}

menu:
<a href="?page=firma">O nas</a>
<a href="?page=kontakt">kontakt</a>

w tej chwili struktura wygląda tak www.adres.pl/?page=firma
chcę osiągnąć taka strukture www.adres.pl/firma
.htaccess działa poprawnie, sprawdzałem

Bardzo proszę o pomoc.
kreatiff
Ustaw bezpośrednio w kodzie strony:
<a href="./firma">O nas</a>
<a href="./kontakt">kontakt</a>
A .htaccess załatwia sprawę wyświetlania (przepisywania adresów) podstrony ?page=firma przy wejściu na /firma, czy ?page=kontakt po wyświetleniu /kontakt, zależnie od reguł w nim się znajdujących.

dodane:
Ogólnie to ja preferuję ruter w php, a .htaccess jedynie ma kierować cały ruch do index.php.
Dzięki temu unikamy od razu problemów z dublowaniem adresów w .htaccess (że strona działa zarówno pod ?page=kontakt i /kontakt) i nie bawimy się w dodatkowe regułki by tego unikać.
kona79
mógłbyś mi pokazać to na moim przykładzie? po zmianie menu link wygląda ładnie ale nie znajduje strony. Czy takie rozwiązanie uruchamia pod stronę przez index?
kreatiff
Jeśli nie znajduje strony, to znaczy, że nie działa przepisywanie linków w .htaccess.
W .htaccess musi się znaleźć coś takiego:
RewriteRule ^kontakt$ index.php?page=kontakt [NC,L]
albo bardziej ogólnie (ten przykład trzeba sobie dopracować, by we wzorze (.*) puszczał tylko znaki alfanumeryczne i interpunkcyjne jeśli się trafią, zamiast dowolnych znaków)
RewriteRule ^(.*)$ index.php?page=$1 [NC,L]
kona79
działa super smile.gif tylko że na sztywno.
Próbuje rozkminić
RewriteRule ^(.*)$ index.php?page=$1 [NC,L]

Fatal error: require_once() [function.require]: Failed opening required 'index.php.php' (include_path='.') w require_once '' . $_GET['page'] . '.php';
Spawnm
Zdajesz sobie sprawę że twój kod includowania podstron jest niebezpieczny? Poczytaj o LFI/RFI
https://www.owasp.org/index.php/Testing_for..._File_Inclusion
kona79
dzięki za poradę.
rozwiązałem to w tej chwili na sztywno, czyli do każdego linku warunek.
Mam jeszcze ogromną prośbę mam coś takiego jak przesyłanie po GET danych do formularza.
<a href="./kontakt&produkt='.$produkt.'">Zadaj pytanie »</a>

jak dokładnie do tego linku będzie wyglądać RewriteRule?
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.