1

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

/detail.php?pid=367

取而代之的是,我们设置了 8 个顶级类别,在 8 个顶级猫的每一个之下有 3 个子类别。

例如,其中一个类别看起来像这样L

/安全柜流体处理/流体桶车/

现在我想做的是在这些类别下为每个产品创建文件夹。如:

/安全柜流体处理/流体桶推车/Lubrigard 处理推车/

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

/安全柜流体处理/流体桶车/Lubrigard-Handling-Cart/856

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

4

1 回答 1

1

你可以有任何 URL 结构,只要模式是在 ID 中找到的,而不是在 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 之前不能有任何其他数字字符串。

但是,如果您仍然希望将 ID 固定在 URL 中的最后一个位置,只需将上面的规则集替换为这个:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} .*/([0-9]+)/?$
RewriteRule .*  detail.php?pid=%1  [L,QSA]
于 2013-01-10T22:54:48.737 回答