【发布时间】:2022-01-10 01:08:47
【问题描述】:
我在 .htaccess 中有以下重写规则:-
RewriteRule ^.*/-y.* /handleurl.php [L]
其目的是根据url中的值显示合适的页面,例如:
example.com/books/BookA/-y?act=x 将显示 bookA 页面
保存书名的变量被编码为 ...
example.com/books/Book B/-y?act=x 变为 example.com/books/book+B/-y?act=x
...这很好(它在handleurl.php中解码)
但是,如果这本书被称为 Book A/B 我有...
example.com/books/Book A/B/-y?act=x 变成 example.com/books/Book+A%2FB/-y?act=x
似乎 htaccess 在重写规则之前对此进行了解码,因此重写规则在由/ 描绘的 URL 中看到了太多元素。
有什么方法可以让重写规则按预期忽略编码的/?
我已经看到之前对类似问题的回复,但我只需要忽略 /,而不需要其他编码字符。
【问题讨论】:
标签: php apache .htaccess mod-rewrite