所以我们最近得到了一个客户的网站,该网站正在为我们的客户定制开发,他们基本上有不友好的网址"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 的末尾。
请确保在测试之前清除缓存。