Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z RewriteEngine
Forum PHP.pl > Forum > Przedszkole
yupiik
Mam problem z RewriteEngine, wywala mi błąd 404 za każdym razem, kiedy w linku pojawi się znak =

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/?$ index.php?$1/$2/$3/$4 [L]
RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/?$ index.php?$1/$2/$3 [L]
RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/?$ index.php?$1/$2 [L]
RewriteRule ^([a-zA-Z-_0-9]+)/?$ index.php?$1 [L]

Problem pojawia się kiedy w adresie jest:
http://yupi/gsdgs=fdfgsdgsd
Natomiast nie ma problemu
http://yupi/?gsdgs=fdfgsdgsd

Niestety nie wiem dlaczego niektóre osoby które przekierowywane są na moją stronę z instagrama otrzymują linka z dodatkowymi parametrami jak ten: http://yupi/gsdgs=fdfgsdgsd
Chciałbym aby takie coś przekierowywało się na stronę główną, może być http://yupi albo http://yupi/index.php
trueblue
A dlaczego miałoby przekierowywać prawidłowo?
W wyrażeniach regularnych reguł obsługujesz wyłącznie znaki a-z, A-Z oraz 0-9, braku tu obsługi znaku =.
yupiik
Dziękuję za wskazówkę, wyrażenia warunkowe to dla mnie koszmar.

Jeśli kogoś to będzie interesowało w przyszłości:

RewriteRule ^([a-zA-Z0-9_=-]+)/?$ index.php?$1 [L]

To rozwiązało problem.
Tomplus
Dlaczego w ogóle tak mocno trzymasz się tego kodu .htaccess? Prawdę mówiąc sam tak robiłem dawno temu i powodowało to zawsze szereg problemów.

Najlepiej zostawić tylko kod, który tylko informuje nas czy dany plik/katalog istnieje, jeżeli nie, to zadanie przejmuje index.php w katalogu strony.
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


Samo zarządzanie ścieżkami przejąć routingiem w PHP, tak jak to jest w innych frameworkach czy webaplikacjach.
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.