在.htaccess重写以将根URL重定向到子目录后,文件无法正确加载

在.htaccess重写以将根URL重定向到子目录后,文件无法正确加载,.htaccess,redirect,.htaccess,Redirect,我所做的是。htaccess规则: RewriteCond %{HTTP_HOST} ^(www.)?example\.com [NC] RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^(.*)$ /static/somefolder/$1 [L] 文件夹中有一个静态html和一些css。html现在尝试从根目录加载css,这显然不是我想要的 实际上,我希望所有的请求都被重定向,除了一个文件夹。 于是我用了: RewriteCond %{HTTP_HOS

我所做的是。htaccess规则:

RewriteCond %{HTTP_HOST} ^(www.)?example\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /static/somefolder/$1 [L]
文件夹中有一个静态html和一些css。html现在尝试从根目录加载css,这显然不是我想要的

实际上,我希望所有的请求都被重定向,除了一个文件夹。 于是我用了:

RewriteCond %{HTTP_HOST} ^(www.)?example\.com [NC]
RewriteCond %{REQUEST_URI} !^/downloads/.*
RewriteRule ^(.*)$ /static/somefolder/$1    [L]
但这会引发“内部服务器错误”


我在这里遗漏了什么?

您需要排除要重写的目标:

RewriteCond %{HTTP_HOST} ^(www.)?example\.com [NC]
RewriteCond %{REQUEST_URI} !^/downloads/.*
RewriteCond %{REQUEST_URI} !^/static/

RewriteRule ^(.*)$ /static/somefolder/$1     [L]
否则会出现无限循环错误,因为/static/somefolder/*也与模式^(.*)匹配$