2

我正在重新设计我的商店,所以旧结构已经用新结构改变了。所以试图用新产品重定向所有旧产品。

我有超过 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

这将变得很长并且可能会减慢网站的速度。那么有没有办法优化这个重定向规则呢?

非常感谢

4

2 回答 2

4

最好根据RewriteMap您的要求使用。这是一个如何使用它的示例:

  1. 将以下行添加到您的httpd.conf文件中:

    RewriteMap prodMap txt://path/to/prodMap.txt
    
  2. /path/to/prodMap.txt像这样创建一个文本文件:

    somename nicecar
    blabla newpros
    
  3. 在您的 .htaccess 文件中添加以下行DOCUMENT_ROOT

    Options +FollowSymLinks -MultiViews
    RewriteEngine on
    
    RewriteRule ^store/products/([^/]+)/?$ http://store.domain.com/${prodMap:$1} [L,R=301,NC]
    
于 2013-09-18T16:13:40.947 回答
1

如果您可以访问 vhost 或服务器配置,则可以设置一个rewrite map,但实际上,它可能比仅仅拥有大量重定向要快一些。您在 htaccess 文件中的重定向会被缓存,因此只要不修改 htaccess 文件,就不需要重新读取指令。

关于如何使用 RewriteMap 以及您可以使用的许多不同的映射,有一个非常详细的教程。

于 2013-09-18T16:10:11.590 回答