.htaccess重写规则不起作用

时间:2014-01-11 21:24:37

标签: .htaccess

我正在使用scssphp进行css预处理,现在我的样式看起来像src="style.php/style.scss"。我想要的是使用htaccess来编写样式,然后以.scss结尾的任何内容都将通过style.php运行。所以我试着将它放在我的主目录中。

RewriteEngine On
RewriteRule ^(.*)\.scss$ style.php/$1.scss

我甚至尝试过

#RewriteEngine On
#RewriteRule ^(.*)\.scss$ style.php/style.scss

两者都没有工作,发生了什么事,因为我的style.scss正在加载500内部服务器错误,但我不确定错误在哪里。

2 个答案:

答案 0 :(得分:1)

您的规则正在循环,尝试添加额外的检查,以便在URI中包含style.php时不重写:

RewriteEngine On
RewriteCond %{REQUEST_URI} !style\.php
RewriteRule ^(.*)\.scss$ style.php/$1.scss

重写引擎将继续遍历您的规则,直到URI停止chanmging。你的规则发生的事情是/path/style.scss这样的请求正在被处理并重写为/style.php/path/style.scss,并且重写引擎循环。第二次,规则再次应用,并重写为:/style.php/style.php/path/style.scss等。

答案 1 :(得分:0)

获得请求的文件名的更好的正则表达式是[a-z_A-Z]+.scss

使用此语法尝试你的htaccess