Fel*_*lix 7 mod-rewrite apache-2.2
我有以下几点RewriteRule:
RewriteRule ^like/(.+)$ ask.php/$1
Run Code Online (Sandbox Code Playgroud)
这适用于以下请求:
/like/someting+here/something+else
Run Code Online (Sandbox Code Playgroud)
但是对于路径部分之一包含转义斜杠 ( %2F) 的请求,服务器会吐出 404 Not Found 错误:
/like/one%2Ftwo+things/
Run Code Online (Sandbox Code Playgroud)
有没有什么办法解决这一问题?我尝试了两者[B]和[NE]标志(单独和一起),但没有任何效果。
编辑:我也试过:
RewriteRule ^like/ ask.php
# or
RewriteRule ^like/(.*) ask.php
Run Code Online (Sandbox Code Playgroud)
所以它不一定要匹配斜杠。它仍然无法正常工作。
我在这里找到了答案。引用相关位:
查询字符串中允许使用裸露的“%2f”。但不是在 URL 中。为了有效,它必须被编码为 %252f,我认为你会发现它可以按预期工作。
因为 URL 本身是无效的,服务器在调用任何 apache 模块之前拒绝它。
有关更多信息,请参阅RFC2396 - 统一资源标识符 (URI):通用语法。
| 归档时间: |
|
| 查看次数: |
6892 次 |
| 最近记录: |