使用modrewrite将URL变量传递给CSS文件

时间:2013-02-07 05:11:01

标签: mod-rewrite

我的一个页面上的一些html使用CSS进行样式处理,为了使其成为动态的,CSS代码必须包含一组特定的PHP变量。话虽这么说,我编辑了我的.htaccess文件,以便真正的PHP文件被欺骗被视为CSS文件。 .htaccess文件看起来如此:

RewriteRule ^/css/bars/([^/]*)/([^/]*)/([^/]*)/([^/]*).css$ /css/bars.php?one=$1&two=$2&three=$3&four=$4 [L]

所以,对于页面的头部,我有:

<link rel="stylesheet" type="text/css" href="/css/bars/0/0/15/2" />

但是,CSS文件不会加载。在服务器上找不到该文件。让我相信重写规则是不正确的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !bars\.php [NC]
RewriteCond %{REQUEST_URI} ^/css/bars/([^/]+)/([^/]+)/([^/]+)/([^/]+)/? [NC]
RewriteRule .* css/bars.php?one=%1&two=%2&three=%3&four=%4 [L]

无声地映射

http://example.com/css/bars/0/0/15/2

有或没有斜杠。始终显示在浏览器的地址栏中

要:

http://example.com/css/bars.php?one=0&two=0&three=15&four=2

假设字符cssbarsbars.php是固定的,而0/0/15/2都假定为变量,数量为4。

必须保留传入的URL结构才能使规则集正常工作:第一个文件夹/css后跟/bars,依此类推。

对于永久重定向,请将[L]替换为[R=301,L]

希望这就是你所需要的。