Multiple 301 Redirect For Multiple Pages or URL

2020-02-14 20:23发布

I am redesigning my store and so the old structure has been changed with the new structure. So trying to redirect all old products with the new.

I have more than 20-25 products and if I write redirect rule for every product than I have to write in this way

Redirect 301 /store/products/somename/ http://store.domain.com/nicecar
Redirect 301 /store/products/blabla/ http://store.domain.com/newpros
Redirect 301 /store/products/cubacuba/ http://store.domain.com/illollo

Which will become to long and may slow down the site. So is there anyway to optimize this redirect rule?

Thanks a lot

2条回答
Fickle 薄情
2楼-- · 2020-02-14 20:32

If you have access to the vhost or server config, you can setup a rewrite map, though in reality, it's probably marginally faster than just having a ton of redirects. The redirects that you have in your htaccess file are cached, so as long as the htaccess file isn't modified, the directives don't need to be re-read.

There's a very detailed tutorial for how to use RewriteMap and the many various mappings you can use with it.

查看更多
Anthone
3楼-- · 2020-02-14 20:36

It is better to use RewriteMap for your requirement. Here is an example how to use it:

  1. Add following line to your httpd.conf file:

    RewriteMap prodMap txt://path/to/prodMap.txt
    
  2. Create a text file as /path/to/prodMap.txt like this:

    somename nicecar
    blabla newpros
    
  3. Add these line in your .htaccess file under DOCUMENT_ROOT:

    Options +FollowSymLinks -MultiViews
    RewriteEngine on
    
    RewriteRule ^store/products/([^/]+)/?$ http://store.domain.com/${prodMap:$1} [L,R=301,NC]
    
查看更多
登录 后发表回答