繁体   English   中英

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

[英].htaccess Rewrite/Redirect mod or PHP script

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

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

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

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

这是我们用于生成重写的数据的细分;

  1. / Clear_For_Life =数据库中的VendorName列
  2. Aquariums_Bowls = DB中的子类别列
  3. AT = DB中的VendorCode列
  4. 70_180 = DB中的PriceRange列
  5. AQAQ = DB中的CategoryId列

想要重定向的URL; /清除生活水族馆碗

在这里的任何帮助或建议,将不胜感激。

我不相信您可以使用mod rewrite更改大小写或替换字符(“ _”至“-”)。

为什么您无法查看所有这些页面301? 如果使用.NET访问它们,那么无论您在哪里进行路由/解析url,都应该有一行代码来进行php重定向。

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

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

这听起来像是RewriteMap的工作。 您需要访问服务器或vhost配置并创建映射。 您可以使用此映射来调用可以从数据库中获取内容的脚本,然后确定新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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM