Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] - generowanie dynamicznego adresu .html
Forum PHP.pl > Forum > Przedszkole
sernik
Witam,

chciałbym uzyskać następujący efekt:

domena.com/product/index.php - w pliku index będzie generowana lista z produktami (nazwa, ceną, zdjęciem itp.) z możliwością przejścia do szczegółowej karty produktu
domena.com/product/product.php - plik szczegółowej karty produktu

Nie wiem jednak w jaki sposób uzyskać efekt adresu do karty produktu na podstawie nazwy produktu np.

produkt o nazwie - Laptop T500 miałby mieć adres domena.com/product/laptop-t500.html, gdzie zawartość pliku .html była by generowana na podstawie product.php

Czy byłby ktoś w stanie podsunąć mi jakieś wskazówki??

Z góry dziękuję za informacje.
Pozdrawiam
Wazniak96
Poczytaj o przyjaznych linkach czyli .htaccess
sernik
Witam, nadal próbuje uzyskać zamierzony efekt ale niestety się nie udaje :<

- serwer postawiony jest na nginx

chcę adres np. domena.com/test/product/product.php?id=2 ustawić jako domena.com/test/product/2.html

W pliku sites-available/default dla nginx dodałem zapis:

location /product {
rewrite ^/product-([^-]*).html$ /product.php?id=$1 break;
}

Niestety nie działa.. W czym może tkwić błąd?
kapslokk
W tym, że rewrite ^/product-([^-]*).html$ /product.php?id=$1 break;
to raczej regułka na product-2.html a nie 2.html
spróbuj:
^/([0-9]+)\.html$ /product.php?id=$1 break;
sernik
Dzięki za sugestię, aczkolwiek taki zapis też nic nie zmienił w adresie. Zresztą jakby zamieniło na adres product-2.html to też byłoby dobrze biggrin.gif z tym, że tutaj po prostu te zmiany nie dają żadnego efektu..
Nadal strona wyświetla się tylko pod adresem product.php?id=2
avalanche
z ciekawości zapytam: czy oprócz htaccess zmieniałeś coś w kodzie?
samo grzebanie w regułach tłumaczenia nic nie da, jeśli w kodzie nie masz tego zaimplementowanego tongue.gif
sernik
@avalanche

Serwer jest skonfigurowany na nginx i nie korzystam z .htaccess..

O jaką implementację Ci chodzi?? - czy w adresie url, który chcę zmienić pojawiają się zmienne? Jakbyś mógł to troszeczkę rozjaśnić to byłbym wdzięczny.
avalanche
chodzi mi o to, że jeśli konfigurujesz serwer do odczytu według wyrażeń regularnych, to sama konfiguracja nie sprawi, że zmienią się adresy wytwarzane przez PHP.
może to oczywiste, ale wolę się upewnić tongue.gif
sernik
Niestety nigdzie nie udało mi się odszukać informacji na ten temat, co powinienem zawrzeć w pliku .php aby te adresy się zmieniały..

Jest tak jak na początku wspomniałeś, dokonywałem tylko modyfikacji w pliku konfiguracyjnym nginx, a w .php nic nie ruszałem.

avalanche
Jeśli nie korzystasz z frameworka, sam musisz podstawić te adresy w odpowiednich miejscach. Samo się nic nie załatwi.
Jeśli korzystasz z frameworka, poszukaj informacji o przyjaznych url-ach na jego stronie.
sernik
Cytat(avalanche @ 1.05.2016, 14:50:57 ) *
Jeśli nie korzystasz z frameworka, sam musisz podstawić te adresy w odpowiednich miejscach. Samo się nic nie załatwi.


Czy mógłbyś mnie nakierować na jakiś przykład takiego kodu??
Z góry dzięki za informacje
avalanche
Jaki przykład kodu? Przecież to po prostu zamiana łączy, jakie masz w aplikacji...
sernik
Temat do zamknięcia.

Udało się uzyskać założony efekt dodaniem reguły do pliku konfiguracyjnego nginx według sugestii kapslokk:

location /product {
rewrite ^/product/([0-9]+)\.html$ /product.php?id=$1;
}
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.