.htaccess重写/重定向mod或PHP脚本


.htaccess Rewrite/Redirect mod or PHP script

所以目前我工作的电子商务公司正在从基于.NET的平台过渡到基于Magento PHP的网站。我遇到的问题是,我们目前有1000个登录页面在搜索引擎上排名很好。我无法在新平台Magento中301所有这些页面,我知道由于性能问题,我无法向.htaccess文件添加1000个静态重定向。

所以我的问题是,有没有一种方法可以为数据库中生成索引页面URL的变量创建重写或重定向规则。如果有的话,那么从性能角度来看,只使用.htaccess文件、只使用PHP脚本或两者结合会更明智吗?

以下是我们当前URL的一个示例,以及我们希望将其重定向到的示例:

当前URL/Clear_For_Life-Aquariums_Bowls-AT-70_180-AQAQ-ct.html

以下是我们用来生成重写的数据的分解;

  1. /Clear_For_Life=数据库中的供应商名称列
  2. Aquariums_Bowls=数据库中的子类别列
  3. AT=DB中的供应商代码列
  4. 70_180=DB中的PriceRange列
  5. AQAQ=数据库中的CategoryId列

需要重定向到的URL;/终身透明水族馆碗

如有任何帮助或建议,我们将不胜感激。

所以我的问题是,有没有一种方法可以为数据库中生成索引页面URL的变量创建重写或重定向规则。如果有的话,那么从性能角度来看,只使用.htaccess文件、只使用PHP脚本或两者结合会更明智吗?

这听起来像是RewriteMap的工作。您需要访问服务器或vhost-config并创建一个映射。您可以使用这个映射来调用一个脚本,该脚本可以从您的DB中获取一些内容,然后决定新的URI需要是什么样子。RewriteMap最简单的用法可能是:

RewriteMap remap prg:/path/to/script

以后你可以简单地做:

RewriteRule ^(.*)$ /${remap:$1|$1} [L]

/path/to/script需要接受类似Clear_For_Life-Aquariums_Bowls-AT-70_180-AQAQ-ct.html的输入,对其进行解析,并正确输出clear-for-life-aquariums-bowl

我不相信您可以使用mod重写来更改大小写或替换字符('_'到'-')。

你为什么不能把这些页都翻一遍?如果它们是用.NET访问的,那么无论你在哪里路由/解析url,都应该有一行代码来进行php重定向。

我说使用htaccess,并编写一个简单的实用程序,从301详细信息的列表中生成所述htaccess文件。