Mam obecnie problem z przepisaniem adresu URL indeksu w pliku .htaccess, wiem, czy go używam
RewriteRule ^profile/([^/]*)/?$ /profile.php?x=$1 [L]
Byłbym w stanie użyć www.example.com/profile/get lub www.example.com/profile/get/ (z ukośnikiem końcowym lub bez)
Ale chciałbym www.example.com/get, co mam do tej pory
RewriteRule ^([^/]*)/$ /index.php?x=$1 [L]
Ale jeśli wstawię? przed $ to błędy wszelkie odpowiedzi mile widziane
Odpowiedzi:
2 dla odpowiedzi № 1Użycie opcjonalnego ukośnika końcowego doprowadzi do nieskończonej pętli [^/]*
dopasuje wszystko, co nie zawiera /
, tzn. pasowałby również index.php?x=get
Możesz tego uniknąć, ustanawiając regułę stosować warunkowo, na przykład przez przetestowanie wymaganego identyfikatora URI:
RewriteCond %{REQUEST_URI} !^/index.php.*
RewriteRule ^([^/]*)/?$ /index.php?x=$1 [L]
W ten sposób reguła może mieć zastosowanie tylko w przypadku, gdy identyfikator URI żądania nie zaczyna się /index.php