RewriteRule ^coaching/complete\sin\s\(30\smin,\s1\shour...\)
http://www.example.com/coaching/complete+in+%2830+min-+1+hour...%29-11
预期输出
http://www.example.com/coaching/complete+in+(30+min-+1+hour...)-11
然而它输出为
http://www.example.com/coaching/complete+in+830+min-+1+hour...9-11
我的代码中有什么问题?
答案 0 :(得分:1)
%2
是mod-rewrite中的参考值,因此当您尝试使用%28
和%29
作为大括号时,是错误的。尝试使用(
和)
。
答案 1 :(得分:1)
问题是%2实际上被mod_rewrite解释为对最后匹配的RewriteCond模式的第二组匹配的反向引用。
如果没有这样的引用,它只是扩展为空字符串。
所以你首先要逃避这样的百分比字符:
RewriteRule ^coaching/complete\sin\s\(30\smin,\s1\shour...\) http://www.example.com/coaching/complete+in+\%2830+min-+1+hour...\%29-11
但是,如果你真的希望这些字符在输出url中显示,你还需要使用[NE]标志,否则mod_rewrite会将它们转换为'('和')'。