首页 > 解决方案 > 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]

问题是 google 已将旧 url 存储在缓存中,因此它仍然使用www.website.com/showproduct.php?p=123456.

如何实现301重定向到www.website.com/product/123456

谢谢

标签: apache.htaccessurlmod-rewrite

解决方案


您可以将此重定向放在行下方RewriteEngine On以处理 Google 缓存 URL:

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]

推荐阅读