以下是我的.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
答案 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
我希望它会有所帮助:)