Mod_Rewrite - 如何为搜索引擎优化目的配置.htaccess for mod_rewrite

时间:2013-01-10 20:09:13

标签: mod-rewrite seo

我正在尝试对我的电子商务网站进行一些改进,以获得更好的搜索引擎优化。其中一个更重要的事情是将产品设置为不使用旧产品:

/detail.php?pid=367

相反,我们设置了8个顶级类别,在8个顶级猫的每个下面都有3个子类别。

例如,其中一个类别看起来像thisL

/安全柜流体搬运/流体鼓推车/

现在我想要做的是在每个产品中都有以下类别的文件夹。如:

/安全柜流体搬运/流体鼓推车/ Lubrigard处理-车/

我的想法可能是最好的方法是在最后包含产品ID,所以就是这样:

/安全柜流体搬运/流体鼓推车/ Lubrigard处理-车/ 856

这有意义吗?在这种情况下,我会把什么放在.htaccess中?

1 个答案:

答案 0 :(得分:1)

只要在ID中找到模式,就可以有任何URL结构,而不是URL结构,这是常规方法。

在你的问题中,模式可能是ID是数字的事实,因此它可以从任何包含它的URL中捕获,而不管它的结构如何。例如:

http://example.com/cat1/cat2/ID/cat3

http://example.com/cat2/ID/cat3/cat1

对于捕获任何位置的数字字符串的规则没有区别,例如:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  /([\d]+)/? 
RewriteRule .*  detail.php?pid=%1  [L,QSA]

它会将传入URL中的ID静默传递给脚本,如下所示:

http://example.com/detail.php?pid=ID

当然,URL中的ID之前不能有任何其他数字字符串。

但是,如果您仍希望在URL的最后位置修复ID,只需将上述规则集替换为此规则:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} .*/([0-9]+)/?$
RewriteRule .*  detail.php?pid=%1  [L,QSA]