0

ファイルへのパスが既に提供されている場合、ファイルをスキップする次のルールを使用しています。

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]

明らかにこれはうまくいきませんでした。何か案は?

4

1 に答える 1

0

このルールの直前:

RewriteRule ^$ public/index.php [NC,L]

次のルールを追加します。

RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -d
RewriteRule ^(.+)$ /public/$1 [L]
于 2013-10-05T02:12:56.160 に答える