这有点奇怪。我已经设置了以下.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite short asset URLs
RewriteRule ^(css|js|img|fonts)/(.*)$ /static/assets/$1/$2 [L]
# Rewrite all other URLs to index.php/URI
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
因此,静态资产直接提供给客户端,而无需通过CMS进行路由。我有完全相同的指令在其他网站上工作 但是在这里,一切仍然被重写为index.php并返回404错误。 当我注释掉index.php-directive时,它可以工作。
如果&#34; [L]
ast规则&#34;这是我所期望的。旗帜会丢失,但很明显,它存在。我也试过没有正则表达式的规则,添加和删除标记或斜杠,改变了位置......老实说,这有点令人尴尬,但我现在不再有任何想法...
答案 0 :(得分:1)
请尝试以下规则:
RewriteEngine On
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite short asset URLs
RewriteRule ^(css|js|img|fonts)/(.*)$ static/assets/$1/$2 [L,NC]
# Rewrite all other URLs to index.php/URI
RewriteRule ^(.*)$ index.php?/$1 [L]