所以目前我工作的电子商务公司正在从基于.NET的平台过渡到基于Magento PHP的网站。我遇到的问题是,我们目前有1000个登录页面在搜索引擎上排名很好。我无法在新平台Magento中301所有这些页面,我知道由于性能问题,我无法向.htaccess文件添加1000个静态重定向。
所以我的问题是,有没有一种方法可以为数据库中生成索引页面URL的变量创建重写或重定向规则。如果有的话,那么从性能角度来看,只使用.htaccess文件、只使用PHP脚本或两者结合会更明智吗?
以下是我们当前URL的一个示例,以及我们希望将其重定向到的示例:
当前URL/Clear_For_Life-Aquariums_Bowls-AT-70_180-AQAQ-ct.html
以下是我们用来生成重写的数据的分解;
- /Clear_For_Life=数据库中的供应商名称列
- Aquariums_Bowls=数据库中的子类别列
- AT=DB中的供应商代码列
- 70_180=DB中的PriceRange列
- 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文件。