.htaccess控制文件重写规则

时间:2012-09-03 16:22:52

标签: apache .htaccess

我有以下重写:

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

因此,如果网址为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]   

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

1 个答案:

答案 0 :(得分:1)

您需要添加支票,否则您的第一条规则会再次应用:

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

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