htaccess 使用 301 重定向 php url

问题描述

我有一个网址类似的网站

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]