apache - 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
?
谢谢
解决方案
您可以将此重定向放在行下方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]
推荐阅读
- reactjs - TypeError:无法读取未定义的属性(读取“toLocaleString”)
- angular - TypeError:无法读取未定义的属性(读取“粉丝”)
- reactjs - setStates 序列在 api 调用中不起作用,为什么?
- c++ - 如何组织大型 CMakeList 文件
- python - 比较两个 defaultiddicts 并仅保留满足条件的记录
- python - 当您拥有密钥文件但不知道在 Python 中加密了什么时解密 Fernet 密钥
- routes - 如何在有条件的 apache camel 中添加后处理拦截器?
- nginx - GitLab API 中的 Nginx 代理解码 URL
- javascript - 选择更改时更新路由参数
- r - 表日志上的 Shinymanager 管理模式错误