将 article.php?id=1 的规则重写为打印机名称



所以我们最近得到了一个客户的网站,该网站正在为我们的客户定制开发,他们基本上有不友好的网址"article.php?id=1"。我正在尝试使它们对 SEO 友好,当我创建新 URL 时,我无法让他们的旧 URL 自动重定向到我刚刚创建的内容。

我尝试了以下方法,但没有运气:

RewriteEngine On
RewriteBase /
RewriteRule ^articulo.php?id=1$ "xerox-phaser-3020bi" [NC,R=301,L]
RewriteRule ^xerox-phaser-3260dni$ /articulo.php?id=2 [R=301,L]
RewriteRule ^xerox-phaser-33dn$ articulo.php?id=3 [L]

正如您所注意到的,我正在为每个产品手动创建URL(仅约38个(,并且由于该应用程序不打印category.php?name=nameofcategory&article.php?id=1,我认为这将是执行友好URL的最佳方式。

我想要的是,当有人点击我们的网站/article.php?id=1 产品时,他们会被带到友好的 URL,例如:/xerox-phaser-3260dni

谢谢!

编辑:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=1$ 
RewriteRule ^articulo.php$ /xerox-phaser-3260dni/? [R=301,L]

此代码重定向,但在访问友好 URL 时不显示页面。

您的方法不起作用,因为您的 URL 包含?等符号。您需要使用{QUERY_STRING}.

请尝试以下操作:

RewriteCond %{QUERY_STRING} article.php?id=1$ 
RewriteRule (.*) /xerox-phaser-3260dni/? [R=301,L]

不要忘记在重定向 URL 的末尾添加?,以便查询字符串不会出现在 URL 的末尾。

请确保在测试之前清除缓存。

最新更新