2016-04-19 47 views
0

我们在SERP中一些旧网址指向格式为:重定向网址的.htaccess

/pneumatic-stapler-parts-438s2-p-19762.html

重要的部分是-p - (它表示它是一个产品)和结尾的号码是product_id。我们也有URL,其中-c-表示一个类别。

.htaccess的我们怎样才能重定向旧网址的格式如下:

的index.php R =产品/图& ID = 19762

类别的URL会以这种形式?

的index.php?R =类别/视图& ID = 123

相信-P-和-C-可以被用来决定哪个两种格式的URL会。

+0

您使用的是一些框架?你的新路线看起来像'控制器/行动'模式。也许你不需要mod_rewrite呢?只需为框架编写适当的路由规则。 – Andrew

+0

我们希望301重定向。 .htaccess是最好的方法。 – Billy

回答

1

您可以在.htaccess使用:

RewriteEngine on 

# skip all files and directories from rewrite rules below 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

# product 
RewriteRule -p-(\d+)\.html$ /index.php?r=product/view&id=$1 [R=301,NC,QSA,L] 

# category 
RewriteRule -c-[\d_]*?(\d+)\.html$ /index.php?r=category/view&id=$1 [R=301,NC,QSA,L] 
+0

这不是重定向。我们需要301重定向。 – Billy

+0

这适用于产品:RewriteRule -p - (\ d +)\。html $ /index.php?r=product/view&id=$1 [R = 301,L]对于类别,问题是我们的旧URL的ID是在这种格式345_67_83 - 我们只想要最后一部分,83.我们如何做到这一点 – Billy

+0

这里是一个示例类别的URL:/husky-portable-air-compressor-repair-parts-c-271_458_459.html - 我们只想459作为ID。 – Billy