Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Przyjazne linki
kona79
post 24.11.2014, 23:32:13
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kreatiff
post 24.11.2014, 23:44:48
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


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ć.

Ten post edytował kreatiff 24.11.2014, 23:47:26
Go to the top of the page
+Quote Post
kona79
post 24.11.2014, 23:54:10
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
kreatiff
post 25.11.2014, 00:12:56
Post #4





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

Ostrzeżenie: (0%)
-----


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]

Ten post edytował kreatiff 25.11.2014, 00:13:24
Go to the top of the page
+Quote Post
kona79
post 25.11.2014, 00:58:57
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

Ostrzeżenie: (0%)
-----


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';
Go to the top of the page
+Quote Post
Spawnm
post 25.11.2014, 01:38:14
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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
Go to the top of the page
+Quote Post
kona79
post 25.11.2014, 22:49:17
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 17:16