为什么使用这些 RewriteRules 会出现 500 错误

为什么使用这些 RewriteRules 会出现 500 错误

我正在共享主机方案上设置一个网站,因此我只能使用 Apache 和 .htaccess 文件。我定义了 2 条 RewriteRules。这两条规则在运行 Apache 的本地机器上都能完美运行。

第一条规则是将对 /css/FILE.css 的请求重写为 /www/css/FILE.css 第二条规则将其他所有内容重写为 /www/index.php

关于 CSS/JS 文件的第一条规则会导致 500 错误,但我不知道原因。我尝试了这些规则的每一个不同版本,但总是得到 500。

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.(css|js) www/$1.$2 [L]
RewriteRule ^(.*)$ www/index.php [L]

答案1

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^www
RewriteRule ^(.*)\.(css|js) www/$1.$2 [L]
RewriteCond %{REQUEST_URI} !^www
RewriteRule ^(.*)$ www/index.php [L]

尝试一下,否则你会得到一个循环,因为规则在重写后仍然适用,所以它会一次又一次地重写......

相关内容