如果已经提供了文件的路径,我正在使用以下规则跳过文件。
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^$ public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.+)$ public/index.php?r=$1 [L,QSA]
但这使我无法访问类似的文件site.com/public/js/somefile.js
,这不是故意的。
我们可以检查文件是否存在于目录中并重写 url 以便以“site.com/js/somfile.js”的形式访问它
RewriteCond %{REQUEST_FILENAME} -"public/"f
RewriteRule ^ - [L]
显然这没有用。有任何想法吗?