首页 > 解决方案 > 如何使用 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]

重写规则不起作用

标签: php.htaccessurlurl-rewritingweb-deployment

解决方案


RewriteCond %{QUERY_STRING} ^name=(.+)
RewriteRule ^(bookStore/single_book)(\.php)$ $1/%1?

这匹配 if nameis 在查询字符串中并且如果name是查询字符串的唯一部分。

我在https://htaccess.madewithlove.be/上测试过

为了玩正则表达式,我使用了https://regexr.com/

RewriteRule 中的尾随?删除查询字符串。


推荐阅读