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]
非常感谢您对这个帮助。