问题描述
www.website.com/showproduct.PHP?p=123456
其中“123456”是要展示的特定产品。
使用 htaccess 我将其重写为
www.website.com/product/123456
通过使用
RewriteEngine On
RewriteRule ^product/(.*)/?$ /showproduct.PHP?p=$1 [L]
问题是谷歌已经在缓存中存储了旧的 url,所以它仍然使用 www.website.com/showproduct.PHP?p=123456
访问页面。
如何实现 301
重定向到 www.website.com/product/123456
?
谢谢
解决方法
您可以将此重定向放在 RewriteEngine On
行下方以处理 Google 缓存网址:
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+showproduct\.php\?p=([^\s&]+) [NC]
RewriteRule ^ /product/%1? [R=301,L,NE]
RewriteRule ^product/([\w-]+)/?$ showproduct.php?p=$1 [L,QSA,NC]