0

我有以下重写:

   RewriteRule ^api/(.*)?   api/api.php [QSA,L]  

因此,如果 url 是http://www.test.com/api/ ... ,它将被重新路由到 api 文件夹中的文件 api.php 。这行得通。

但是,我想添加另一条规则,如果 url 是http://www.test.com/second_api/ ... 将重新路由到 api 文件夹内的文件 second_api.php 。我不让它工作。

      RewriteRule ^second_api/(.*)?   api/second_api.php [QSA,L]  
      RewriteRule (.*)/second_api/(.*)?   api/second_api.php [QSA,L] 
      RewriteRule ^/second_api/(.*)?   api/second_api.php [QSA,L]   

要么是错误的 url,要么是重新路由到 api.php。我想使用新添加的规则重新路由到 second_api.php。

4

1 回答 1

1

您需要添加检查,否则您的第一条规则将再次应用:

RewriteCond %{REQUEST_URI} !second_api\.php
RewriteRule ^api/(.*)?   api/api.php [QSA,L]  

RewriteRule ^second_api/(.*)? api/second_api.php [QSA,L]  
于 2012-09-03T23:38:03.200 回答