我需要做一个非常简单的URL重写,但我的RewriteRule不起作用。
我想要这个网址:http://myweb.com:8080/MySite/bla?bla
成为:http://myweb.com:8080/MySite/index.php
我的.htaccess文件内容如下:
RewriteEngine On
RewriteRule bla\?bla index.php
它位于“MySite”文件夹中。我可以成功地做其他网址重写规则,但每当我需要编写带有问号的规则时,我就会陷入困境。
我做错了什么?
答案 0 :(得分:0)
您需要使用%{QUERY_STRING}
重写条件。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^bla$
RewriteRule ^/?bla$ index.php [NC,L]
请注意,重写规则中的?
与查询字符串中的?
不匹配。该部分完全由%{QUERY_STRING}
处理。 [NC]
只会使规则不区分大小写,而[L]
会将规则标记为最后一个。