php - 如何使用 htaccess 为空间创建 RewriteRule
问题描述
我使用 htaccess 使 mu URL 变得干净。我原来的 ULR 是 http://localhost/bookStore/single_book.php?name=This%20is%20book%20no%204
我使用 php urlencode() 函数来制作这个
http://localhost/bookStore/single_book.php?name=This+is+book+no+4
但现在我想这样做:
http://localhost/bookStore/single_book/This+is+book+no+4
使用 htaccess
RewriteRule ^single_book/([0-9a-zA-Z_-]+) single_book.php?name=$2 [NC,L]
重写规则不起作用
解决方案
RewriteCond %{QUERY_STRING} ^name=(.+)
RewriteRule ^(bookStore/single_book)(\.php)$ $1/%1?
这匹配 if name
is 在查询字符串中并且如果name
是查询字符串的唯一部分。
我在https://htaccess.madewithlove.be/上测试过
为了玩正则表达式,我使用了https://regexr.com/
RewriteRule 中的尾随?
删除查询字符串。
推荐阅读
- bootstrap-4 - 无法实现复杂的Boostrap 4网格
- php - PHP 的 Google Cloud Storage 问题
- java - 如何在 Android 的数组中加上对象?
- python - Pandas 数据框仅读取第一个值,其他所有值均为 NaN
- typescript - 为什么找不到接口类型是Typescript文件
- autodesk-forge - Autodesk Forge 是否支持 IFC 4
- api - 无法从 URL 中提取参数
- ios - 为设备构建时遇到错误
- dependency-injection - 在 @RequestScoped 中未调用 @PostConstruct
- git - 如何仅显示给定的提交(逻辑上与 `git log --no-walk` 相同)