Skocz do zawartości

[mod-rewrite] przyjazne linki, problem z ilością zmiennych


powiatek

Rekomendowane odpowiedzi

Witam

Mam problem z taką komendą w .htaccess:

RewriteEngine on

RewriteRule ^prezenty_([^-]*)/([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*).html$ index.php?a=$1&b=$2&c=$3&d=$4&e=$5&f=$6&g=$7&h=$8&i=$9&j=$10&k=$11

Mam problem powyżej '$9', czyli ze zmiennymi '$10' i '$11'. Zamiast je pobierać z adresu pobiera mi '$1' i na końcu niej daje '0' w przypadku pierwszej a w przypadku drugiej '1'.

Może podam przykład. Załóżmy, że:

$1=kot

$10=samolot

$11=wiadro

Jeżeli pobieram od $1-9 to jest ok i wyświetla je prawidłowo ale kiedy pobieram '$10' to zamiast 'samolot' wyświetla mi 'kot0' a gdy pobieram '$11' to zamiast 'wiadro' wyświetla 'kot1'. Czyli np. w $10 podstawia $1+0.

Czy linki można zamieniać na bardziej przyjazne maksymalnie do 9 zmiennych?

Serwer mam na home.pl

Z góry dzięki za pomoc!

Odnośnik do komentarza
Udostępnij na innych stronach

Kilka zmiennych w jednej modrewrite przesylaj, potem rozdziejaj je na tablice explode.

zmienna1A,zmienna1B,zmienna1C-zmienna2A,zmienna2B,zmienna2C.html

$x = zmienna1A,zmienna1B,zmienna1C ( w $1 )

$y = zmienna2A,zmienna2B,zmienna2C ( w $2 )

$abc1 = explode(',',$_GET[x]);

$abc2 = explode(',',$_GET[y]);

var_dump($abc1,$abc2); // z palca wiec musisz sprawdzic...

Odnośnik do komentarza
Udostępnij na innych stronach

Kilka zmiennych w jednej modrewrite przesylaj, potem rozdziejaj je na tablice explode.

zmienna1A,zmienna1B,zmienna1C-zmienna2A,zmienna2B,zmienna2C.html

$x = zmienna1A,zmienna1B,zmienna1C ( w $1 )

$y = zmienna2A,zmienna2B,zmienna2C ( w $2 )

$abc1 = explode(',',$_GET[x]);

$abc2 = explode(',',$_GET[y]);

var_dump($abc1,$abc2); // z palca wiec musisz sprawdzic...

Zrobiłem to troche inaczej tzn. na podstawie artykułu z neta: https://webmade.org/porady/przyjazne-adresy-url.php

Prawie wszystko jest ok. Moge użyć więcej niż 9 zmiennych, czyli można powiedzieć pełen sukces. Problemy zaczynają się w pliku .htaccess. Takie polecenie mi nie działa:

<Files artykul>

ForceType application/x-httpd-php

</Files>

I musze dalej używać adresu:

https://www.strona.pl/index.php?wartosc1,wartosc2,wartosc3...

Działa mi za to:

RewriteRule ^prezenty$ index.php [L]

Co daje wynik w postaci adresu:

https://www.strona.pl/prezenty?wartosc1,wartosc2,wartosc3...

Tylko mam problem z pozbyciem się znaku zapytania z adresu.

Dodanie '?' do rewriterule nic nie daje (próba zamiany index.php? na prezenty/):

RewriteRule ^prezenty/$ index.php? [L]

... i aby adres działał poprawnie nadal musze używac adresu ze znakiem zapytania:

https://www.strona.pl/index.php?wartosc1,wartosc2,wartosc3...

lub

https://www.strona.pl/prezenty?wartosc1,wartosc2,wartosc3...

W związku z tym mam następujące pytania:

1. Czy znak zapytania ma istotne znaczenie dla wyszukiwarek i czy lepiej go zlikwidować czy to poprostu olać bo to bez znaczenia?

2. Jak zlikwidować ten znak zapytania.

Z góry dziękuje!

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności