1

私はこのコードを使用します:

RewriteCond public/%{REQUEST_FILENAME} -f [OR]
RewriteCond public/%{REQUEST_FILENAME} -d 
RewriteRule public/.* - [L]

そしてそれは動作しません。

たとえば、次のURLを使用します: http : //example.com/style.cssこのようにインターペット化する

public / style.css

style.cssがパブリックディレクトリに存在する場合。ありがとうございました :)

4

1 に答える 1

1

私が正しく思い出せば:

RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -d 
RewriteRule public/.* - [L]

編集

%{REQUEST_FILENAME}要求されたファイルへのフルパスが含まれます。だから例えば/var/www/example.com/index.htmlpublic/したがって、前面に追加すると、が発生しますがpublic/var/www/example.com/index.html、これは存在しません。したがって、%{DOCUMENT_ROOT}を含む/var/www/example.com、および%{REQUEST_URI}を含むを使用します/index.html

また、wwwroot相対パスだけでなく、フルパスが必要であること-fに注意してください。-d

于 2013-03-15T14:12:52.457 に答える