php - 使用 .httacces 文件从 url 隐藏参数
问题描述
我有 url reader?id=12
我已经使用以下 .htaccess 文件隐藏了 php 扩展名
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
但我希望它在地址栏中看起来像这样:reader/12
我应该如何修改 .htaccess 文件?
解决方案
您可以使用%{QUERY_STRING}
:
RewriteEngine On
RewriteCond %{QUERY_STRING} id=(.+)$ [NC]
RewriteRule ^(.*)$ /reader/%1 [R=301,L,QSD]
然后在内部重写 URL,也使用:
RewriteRule ^/reader/([^/]*) /reader?id=$1 [L]
确保在测试之前清除缓存。你会注意到我已经使用R=301
了,这是一个永久重定向,在测试时我建议你将R=302
其更改为临时重定向。
推荐阅读
- javascript - 正确定义的 Javascript 函数有时会导致 TypeError:“X”不是函数
- r - 包括 ggplot 中的所有值
- postgresql - Stardog:无法加载类 [org.postgresql.Driver]
- sql - SSRS 导出到 Excel,带有多个选项卡和一个报告表
- intellij-idea - Intellij 在 Windows 下不断用 git 提示输入凭据
- kubernetes - “服务被禁止:用户 \"system:serviceaccount:tick:external-dns\" 无法在集群范围内列出 API 组 \"\" 中的资源 \"services\"”
- c# - Visual Studio 中的“首选 32 位”在控制台应用程序 (.NET Core) 下生成 64 位代码
- json - 使用 JSON 字段值作为带有 filebeat 的 Kafka 主题的记录键
- mysql - 更新影响 0 行
- google-apps-script - 如何使用 Google App 脚本调试 DriveApp.getFileById