/ / Htaccess przepisuje indeks z końcowym ukośnikiem lub bez - .htaccess

Indeks przerysowania Htaccess z końcowym ukośnikiem lub bez - .htaccess

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 № 1

Uż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