.htaccess无法加载资源

时间:2014-03-14 21:57:04

标签: php apache .htaccess

以下是我的.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

2 个答案:

答案 0 :(得分:1)

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

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/

答案 1 :(得分:0)

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

SetEnv APPLICATION_SAUF_EXT js|ico|css

... Your specifics rules .htacces

RewriteRule !\.(%(APPLICATION_SAUF_EXT))$ index.php

我希望它会有所帮助:)