.htaccess重写不起作用 - 怀疑是字母数字字符/ backrefrences

时间:2013-12-10 04:31:14

标签: apache .htaccess mod-rewrite

我相信我经历了一个非常简单和常见的重写行为,但经过几天(是几天)与.htaccess重写规则,阅读文档,尝试生成器和测试人员等的斗争后,我仍然没有进一步重写发生。

我要重写的网址是:

http://www.mysite.com/products/adagio.php?prod=Adagio%20BankRec

http://www.mysite.com/bankrec

以下内容无效

Options +FollowSymlinks
RewriteEngine On
RewriteBase /    
RewriteRule ^bankrec$ /products/adagio.php?prod=Adagio%20BankRec

如果我启用编码斜杠:AllowEncodedSlashes On它会破坏网站。此外,如果我添加[B]标志来表示转义反向,它会破坏网站。

任何人都可以帮助我吗?重写规则让我觉得宇宙没有秩序。感谢

1 个答案:

答案 0 :(得分:1)

您需要转义%字符,否则mod_rewrite会尝试将其替换为%2。请改用此规则:

RewriteRule ^bankrec/?$ /products/adagio.php?prod=Adagio\%20BankRec [L,NE]