Apache条件-根据查询字符串的存在进行不同的重写

Apache条件-根据查询字符串的存在进行不同的重写,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有以下规则: RewriteCond %{REQUEST_URI} ^/33\.php$ [NC] RewriteRule ^33.php "/api.php" [NC,L] 我想将/33.php重写为/api.php,以及除此之外的任何内容,例如/33.php?foo=bar,以获得404。我怎样才能做到这一点?谢谢。您可以按如下所示操作。查询字符串位于它自己的变量中 # Rewrite /33.php with no query string to /api.php RewriteCon

我有以下规则:

RewriteCond %{REQUEST_URI} ^/33\.php$ [NC]
RewriteRule ^33.php "/api.php" [NC,L]

我想将
/33.php
重写为
/api.php
,以及除此之外的任何内容,例如
/33.php?foo=bar
,以获得404。我怎样才能做到这一点?谢谢。

您可以按如下所示操作。查询字符串位于它自己的变量中

# Rewrite /33.php with no query string to /api.php
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^33\.php$ /api.php [NC,L]

# Return 404 for /33.php?anything
RewriteRule ^33\.php$ - [NC,R=404,L]

乔治,谢谢你接受我的回答。我注意到你是新来的,我想让你知道你现在已经有了足够的声誉,能够使用勾选接受答案旁边的向上箭头向上投票。这会给给出答案的用户带来更高的声誉(+10),并表示您认可它。