无法匹配RewriteRule

时间:2013-07-17 12:01:19

标签: regex mod-rewrite url-rewriting

我需要做一个非常简单的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”文件夹中。我可以成功地做其他网址重写规则,但每当我需要编写带有问号的规则时,我就会陷入困境。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要使用%{QUERY_STRING}重写条件。

RewriteEngine On

RewriteCond %{QUERY_STRING} ^bla$
RewriteRule ^/?bla$ index.php [NC,L]

请注意,重写规则中的?与查询字符串中的?不匹配。该部分完全由%{QUERY_STRING}处理。 [NC]只会使规则不区分大小写,而[L]会将规则标记为最后一个。

相关问题