Apache-仅在存在规则文件目标时才应用重写规则



这个问题可能总是相同的:"如果文件不存在,则应用规则",但是:ateention!它不是。这是倒数。

我要仅当规则的结果文件实际上存在,并且如果没有,则要应用重写规则,如果没有,请忽略规则并继续下一个规则。示例:

RewriteRule ^api/(.*) apifolder/$1.php

如果我键入url:" api/file1" 和文件" apifolder/file1.php" 不存在,那么我希望此规则是忽略并继续。

我希望这个问题很清楚。感谢您的时间。

编辑:

更多有关我要完成的事情的信息。给定接下来的两个规则:

RewriteRule  ^api/([^/]+)/(.*)  app/$1/$2.api.php 
RewriteRule  ^api/([^/]+)(.*)  app/$1/$1.api.php 

如果不存在第一个规则命运文件,我希望忽略规则并执行第二个规则。

对我而言[n]标志。我的意思是我使用[N]使用的第一条规则,迫使所有规则再次应用,但是这次RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f是第二个规则的条件。我还需要将第一规则目标用作第二规则源。应该是这样的:

RewriteRule  ^api/([^/]+)/(.*)  app/$1/$2.api.php [N]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule  ^app/([^/]+)/(.*).api.php  app/$1/$1.api.php 

最新更新