/ Przekierowanie / htaccess z unikalnym identyfikatorem do tytułu - .htaccess

Przekierowanie htaccess z unikalnym id do tytułu - .htaccess

Mam takie adresy URL:

http://www.example.com/en/product.php?id=23&t=page-title-here

Chcę zmienić adresy URL na coś takiego:

http://www.example.com/en/product23/page-title-here/

Odpowiedzi:

1 dla odpowiedzi № 1

Umieść następujące elementy w swoim /.htaccess plik:

RewriteEngine on

# Step 1: Redirect file-based URIs to new "pretty permalinks" and prevent looping
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{QUERY_STRING} ^id=(d+)&t=([^/]+)$ [NC]
RewriteRule ^(en/product).php$ /$1%1/%2? [R=302,NE,L]

# Step 2: Rewrite above permalink to file-based URI
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(en/product)(d+)/([^/]+)/?$ /$1.php?id=$2&t=$3 [L,QSA]

Aktualizacja: Jeśli chcesz dopasować wiele języków (zgodnie z komentarzem poniżej), możesz użyć grupy bez przechwytywania, która sprawdza dokładnie dwa znaki zamiast tylko en:

# Use this rule in step 1 above
RewriteRule ^((?:[a-z]{2})/product).php$ /$1%1/%2? [R=302,NE,L]
# Use this rule in step 2 above
RewriteRule ^((?:[a-z]{2})/product)(d+)/([^/]+)/?$ /$1.php?id=$2&t=$3 [L,QSA]