这个问题可能总是出现:“如果文件不存在则应用规则”但是:注意!不是。这是相反的。
我想仅在规则的结果文件实际存在时应用重写规则,如果不存在,则忽略该规则并继续下一步。例如:
RewriteRule ^api/(.*) apifolder/$1.php
如果我输入网址:“api / file1”且文件“apifolder / file1.php”不存在,那么我希望此规则为忽略并继续。
我希望这个问题很明确。谢谢你的时间。
修改
有关我正在努力完成的更多信息。鉴于接下来的两条规则:
RewriteRule ^api/([^/]+)/(.*) app/$1/$2.api.php
RewriteRule ^api/([^/]+)(.*) app/$1/$1.api.php
如果第一个规则命运文件不存在,我希望忽略该规则并执行第二个规则。
答案 0 :(得分:0)
为我工作过[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