Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [.htaccess]"ukrycie" w URL'u zmiennej przy pomocy .htaccess
Forum PHP.pl > Forum > PHP
RaRu
Witam,

mam pytanie związane z odpowiednią preparacją URL'a na własne potrzeby.

zwykłe adresy nie wykorzystujące .htaccess wyglądają następująco:

Kod
1. www.domena.pl/?pg=strona&gr=grupa1
2. www.domena.pl/?pg=strona&gr=grupa2
3. www.domena.pl/?pg=strona&gr=grupa3
4. www.domena.pl/?pg=strona&gr=grupa1&pr=produkt1
4. www.domena.pl/?pg=strona&gr=grupa3&pr=produkt3
6. ....


adresy wykorzystujące standardowe formuły .htaccess przyjmują formę:

Kod
1. www.domena.pl/strona/grupa1/
2. www.domena.pl/strona/grupa2/
3. www.domena.pl/strona/grupa3/
4. www.domena.pl/strona/grupa1/produkt1
5. www.domena.pl/strona/grupa3/produkt3
6. ....



Generalnie dążę do sytuacji, w której moje URL'e przyjęłyby taką postać:

Kod
1. www.domena.pl/grupa1/
2. www.domena.pl/grupa2/
3. www.domena.pl/grupa3/
4. www.domena.pl/grupa1/produkt1
5. www.domena.pl/grupa3/produkt3
6. ....


czyli chciałbym ukryć pierwszy parametr "strona".

Pytanie czy jest to możliwe przy pomocy odpowiednich reguł w .htaccess. Czy istnieje inne rozwiązanie...? a może jedyna opcja to stworzenie podstron: grupa1, grupa2, grupa3... co z oczywistych względów nie wchodzi w rachubę.

dziękuję za wszelkie podpowiedzi, pozdrawiam...
Cezar708
Rozumiem, że chodzi Ci o modRewrite (który jest ustawiany w htaccess)

proponuję abyś wrzucił tutaj dotychczasową zawartość Twojego pliku .htaccess, dzięki temu będzie można określić co jest nie tak.

Pozdrawiam
bim2
RewriteRule (.+)/(.+). www.domena.pl/?pg=strona&gr=$13&pr=$2 [L]

jakoś tak, ale nie wiem czy działa smile.gif
RaRu
Może przedstawię temat też inaczej, żebyśmy się dobrze zrozumieli. Chodzi mi o uzyskanie efektu takiego jak na www.nokaut.pl. Tam po wejściu ze strony głównej w jakąkolwiek kategorię mamy URL'e postaci:

1. http://www.nokaut.pl/muzyka/
2. http://www.nokaut.pl/moda-i-styl/
3. http://www.nokaut.pl/komputery/
4. ................
. ................
n .................

i tysiące innych linków, gdzie nazwa kategorii jest widoczna od razu po adresie strony.

Tak się zastanawiam jak taki efekt osiągnąć. Gdyby było stworzonych tysiące podstron, powiedzmy o nazwach: muzyka.php, moda-i-styl.php, komputery.php, ...... to taki efekt URL'a byłoby osiągnąć bardzo łatwo. Link bez użycia .htaccess miałby postać np: ?pg=muzyka, ?pg=moda-i-styl, .... a po użyciu .htaccess i reguły modRewrite: RewriteRule ^([a-z-]+)/$ index.php?pg=$1 [L,NC,NS] przyjął by postać www.domena.pl/muzyka/, www.domena.pl/moda-i-styl

Jednak wydaje mi się, że na nokaucie wszystko jest wczytywane do jednej strony, a jeśli tak to nazwa kategorii (muzyka, moda-i-styl....) to drugi parametr, ponieważ pierwszym będzie podstrona, na której są wczytywane kategorie. Taki adres bez użycia .htaccess mógłby wyglądać tak: ?pg=podstrona&kat=muzyka a z użyciem .htaccess i reguły modRewrite: RewriteRule ^([a-z-]+)/([a-z-]+)/$ index.php?pg=$1&kat=$2 [L,NC,NS] następująco: www.domena.pl/podstrona/muzyka/ Taki efekt mogę bez problemu osiągnąć, tylko chciałbym aby po adresie od razu było: muzyka a zmiennej "podstrona" chciałbym się pozbyć. Pytanie czy da się zrobić za pomocą reguł modRewrite, czy może nokaut.pl zastosowało inne rozwiązanie...? Jak uważacie..? jak można taki efekt osiągnąć? Dziękuję i pozdrawiam.
DeyV
Jestem przekonany, że problem 2 zmiennej w tym przypadku rozwiązany jest po prostu w ten sposób, że tej 2 zmiennej nie ma smile.gif
A dlaczego?
Bo jest ona zupełnie nie potrzebna, wystarczy napisać sobie prosty mechanizm aliasów, który w oparciu o konkretne słowo kluczowe uruchomi dowolny moduł / akcję twojego systemu.

W końcu zdecydowanie łatwiej jest napisać taką tablicę w php niż kombinować z plikiem htaccess, który na dodatek musiałbyś jeszcze cały czas uaktualniać, w momencie dodawania kolejnych elementów swojej strony.
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.