所以我们最近有一个客户的网站正在为我们的客户开发定制,他们基本上有非友好的URL“article.php?id = 1”。我正在努力使他们对SEO友好,而在创建新网址时,我无法让他们的旧网址自动重定向到我刚创建的网址。
我试过以下但没有运气:
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产品时,他们会被带到友好的网址,例如:/ xerox-phaser-3260dni
谢谢!
修改:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=1$
RewriteRule ^articulo\.php$ /xerox-phaser-3260dni/? [R=301,L]
此代码重定向,但在访问友好网址时不显示该页面。
答案 0 :(得分:2)
您的方法不起作用,因为您的网址包含?
等符号。您需要使用{QUERY_STRING}
。
尝试以下方法:
RewriteCond %{QUERY_STRING} article.php?id=1$
RewriteRule (.*) /xerox-phaser-3260dni/? [R=301,L]
不要忘记在重定向的URL末尾添加?
,因为查询字符串不会出现在URL的末尾。
确保在测试之前清除缓存。