Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zła zmienna w GET po przepisaniu w htaccess
Forum PHP.pl > Forum > Przedszkole
mundeck
Mam takiego htaccessa:

RewriteEngine on
Options +Indexes
RewriteRule ^(.*)/?$ index.php?controller=$1


Docelowo chciałbym, żeby wszystko, co jest po slashu było zmienną GET, niezależnie od tego, czy występuje slash na końcu, czy nie. Na przykład zarówno adres /blog jak i blog/ powinien dawać zmienną $_GET['controller']='blog'.
Ale niestety tak się nie dzieje, w obu przypadkach otrzymuję:

array(1) {
["controller"]=>
string(9) "index.php"
}

Nie wiem dlaczego do zmiennej GET jest przypisywany akurat ciąg znaków "index.php".

Dopiero gdy wrzucam na sztywno: RewriteRule ^(.*)/$ index.php?controller=$1
otrzymuję:

array(1) {
["controller"]=>
string(4) "blog"
}

Ale chcę, żeby ta zmienna była przypisana nawet wtedy, gdy ktoś wpisze adres bez slasha na końcu. Da się coś poradzić?
trueblue
Przygotuj sobie .htaccess tak, aby przepisywać adresy bez slasha, na kończące się slashem, lub odwrotnie.
Załatwisz za jednym razem dwa problemy: duplicate content i Twój.
mundeck
Ale pozostaje pytanie: dlaczego wyrażenie w nawiasie jest ignorowane i w zmiennej GET jest "index.php" zamiast niego?
trueblue
To hosting zewnętrzny? Jaki?
mundeck
Na razie localhost
trueblue
Dodaj flagę [QSA]
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.