问题
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
回答1:
It is better to use RewriteMap for your requirement. Here is an example how to use it:
Add following line to your
httpd.conffile:RewriteMap prodMap txt://path/to/prodMap.txtCreate a text file as
/path/to/prodMap.txtlike this:somename nicecar blabla newprosAdd 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]
回答2:
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.
来源:https://stackoverflow.com/questions/18877075/multiple-301-redirect-for-multiple-pages-or-url