我正在重新设计我的商店,所以旧的结构已经改变了新的结构。因此,尝试使用新的重定向所有旧产品。
我有超过20-25种产品,如果我为每种产品编写重定向规则,而不是以这种方式编写
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
这会变得很长并且可能会减慢网站的速度。那么无论如何都要优化这个重定向规则吗?
非常感谢
答案 0 :(得分:4)
最好根据您的要求使用RewriteMap
。以下是如何使用它的示例:
将以下行添加到httpd.conf
文件中:
RewriteMap prodMap txt://path/to/prodMap.txt
像/path/to/prodMap.txt
一样创建一个文本文件:
somename nicecar
blabla newpros
在DOCUMENT_ROOT
下的.htaccess文件中添加以下行:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteRule ^store/products/([^/]+)/?$ http://store.domain.com/${prodMap:$1} [L,R=301,NC]
答案 1 :(得分:1)
如果您可以访问vhost或服务器配置,则可以设置rewrite map,但实际上,它可能比仅有大量重定向要快一些。您的htaccess文件中的重定向会被缓存,因此只要未修改htaccess文件,就不需要重新读取这些指令。
有一个非常详细的教程,介绍如何使用RewriteMap以及可以使用的各种映射。