我正在尝试对我的电子商务网站进行一些改进,以获得更好的搜索引擎优化。其中一个更重要的事情是将产品设置为不使用旧产品:
/detail.php?pid=367
相反,我们设置了8个顶级类别,在8个顶级猫的每个下面都有3个子类别。
例如,其中一个类别看起来像thisL
/安全柜流体搬运/流体鼓推车/
现在我想要做的是在每个产品中都有以下类别的文件夹。如:
/安全柜流体搬运/流体鼓推车/ Lubrigard处理-车/
我的想法可能是最好的方法是在最后包含产品ID,所以就是这样:
/安全柜流体搬运/流体鼓推车/ Lubrigard处理-车/ 856
这有意义吗?在这种情况下,我会把什么放在.htaccess中?
答案 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]