.htaccess加载资源失败


.htaccess failing to load resources

下面是我的。htaccess文件中的代码。虽然加载CSS和JS等资源失败,但所有路由都能正常工作。有人知道为什么吗?

注意:我正在通过2个子文件夹路由。

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.example.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ folder/public/$1 [L]
    RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^www.example.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ folder/public/index.php [L]

我的文件夹结构…

public_html
    .htaccess
    folder
        folder
        folder
        public <-- contains my css and js also.
            index.php

您需要复制第二条规则的所有条件。重写条件只适用于紧跟在重写规则之后的,因此需要应用于以下规则的任何条件都需要复制:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} folder/public/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ folder/public/$1 [L]
RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} folder/public/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ folder/public/index.php [L]

虽然我不确定这个规则的意义是什么:RewriteCond %{REQUEST_URI} folder/public/

我在另一个项目中遇到了类似的问题。下面是我们使用的技巧:
您可以添加其他扩展名

SetEnv APPLICATION_SAUF_EXT js|ico|css
... Your specifics rules .htacces
RewriteRule !'.(%(APPLICATION_SAUF_EXT))$ index.php

我希望这对你有帮助。