htaccess中的RewriteRule没有任何影响

问题描述:

对不起,这可能是一个简单的问题,但我已经阅读了大量的教程,无法解决问题。这里的URL样本:htaccess中的RewriteRule没有任何影响

http://localhost:8106/privacy-policy/?lang=fr&dest=app

的内容的.htaccess:

RewriteEngine on 
RewriteRule ^privacy-policy/?lang=([a-z][a-z])&dest=app$ privacy-policy/$1 [NC,L] 

当我访问的URL,我不重定向。有任何想法吗?

感谢

不能匹配对规则中的查询字符串,您需要使用%{QUERY_STRING}变量:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^lang=([a-z][a-z])&dest=app$ 
RewriteRule ^privacy-policy/$ privacy-policy/%1 [NC,L] 

注意反向引用必须是%1。如果你需要它来重定向浏览器,你还需要在方括号中标记一个R

感谢Jon Lin对query_string和%1编辑的引导。它最终没有与该代码的复制/粘贴工作,但这是最后什么我结束了和它的工作:再次

RewriteCond %{REQUEST_URI} privacy-policy 
    RewriteCond %{QUERY_STRING} lang=(\w+)&dest=app 
    RewriteRule ^privacy-policy/$ /privacy-policy/%1? [R=301,L] 

非常感谢您对这个帮助。