我使用此代码:
RewriteCond public/%{REQUEST_FILENAME} -f [OR]
RewriteCond public/%{REQUEST_FILENAME} -d
RewriteRule public/.* - [L]
它不起作用。
例如,我想要那个网址: http://example.com/style.css 像这样安慰
公共/ style.css中
如果style.css存在于公共目录中。谢谢:))
答案 0 :(得分: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.html
。因此,在前面添加public/
将导致public/var/www/example.com/index.html
,这永远不会存在。因此,您使用包含%{DOCUMENT_ROOT}
的{{1}}和包含/var/www/example.com
的{{1}}
另请注意,%{REQUEST_URI}
和/index.html
需要完整路径,而不仅仅是wwwroot相对路径。