Simone
Simone

Reputation: 122

apache .htaccess redirect regex

I need this redirect 301 rule in apache .htaccess:

/catalog/{category_slug}/{product_slug} 

to

/product/{product_slug}

example:

/catalog/cat1/prod1 to /product/prod1
/catalog/cat1/prod2 to /product/prod2
/catalog/cat2/prod3 to /product/prod3

and also:

/en/catalog/abc/xyz to /en/product/xyz
/es/catalog/abc/xyz to /es/product/xyz
...
...

Could you please help me?

tks Simone

Upvotes: 1

Views: 90

Answers (2)

Example person
Example person

Reputation: 3346

Add this to the top of your .htaccess file:

RewriteEngine On # no need to do this twice, once is enough

RewriteRule ^([^\/]+\/)?catalog\/[^\/]*\/([^0-9].*) /$1product/$2 [R=302,QSA,L]

Make sure mod_rewrite is enabled on the server.

This will redirect:

  1. /catalog/abc/xyz to /product/xyz
  2. /catalog/abc/123/xyz to /product/123/xyz
  3. Also redirect with the query string because of QSA flag.

Upvotes: 1

MrWhite
MrWhite

Reputation: 45978

At the top of your root .htaccess file using mod_rewrite:

RewriteEngine On

RewriteRule ^catalog/[^/]+/([^/]+)/?$ /product/$1 [R=302,L]

The $1 backreference contains the "{product-slug}" (3rd path segment) from the capturing group in the preceding RewriteRule pattern.

Upvotes: 1

Related Questions